从 ASP.NET 控制器返回动态 jsonobject

wmm*_*haa 6 c# asp.net asp.net-mvc json

我正在尝试返回从 json 字符串反序列化的动态对象。在运行时我不知道对象是什么样子,所以我不能输入它。

我试过这个:

var json = @"[{""clientNumber"":""3052394"",""accountStatus"":""Active""},{""clientNumber"":""1700630"",""accountStatus"":""Active""}]";
dynamic result = JsonConvert.DeserializeObject(json);
return Json(result, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)

但结果是这样的:

[[[[]],[[]]],[[[]],[[]]]]
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

var result = new{...};
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我不知道对象在运行时是什么样子。

spe*_*der 9

Controller.Json因此,MVC 控制器中的标准方法与动态类型的关系很奇怪。

正如您使用 JSON.NET 进行反序列化一样,您最好也使用 JSON.NET 进行序列化并返回字符串输出。

return Content(JsonConvert.SerializeObject(dynamicInstance), "application/json");
Run Code Online (Sandbox Code Playgroud)


Avi*_*tal 5

关于什么Dictionary<string,string>

var j = new Dictionary<string,string>();
j.Add("clientNumber","3052394");
j.Add("accountStatus","Active");
return Json(j, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)