Json动态字符串列表
我想将我的mvc应用程序中的验证错误列表返回到客户端,以便我可以使用接收对象的s 我可以得到一个字段列表,以及以任何最合适的方式应用于这些字段的erorr 我已经尝试了一些格式,包括字典,但没有一种按照验证库的要求序列化到正确的结构 即 我所有的例子似乎都是按照Json动态字符串列表,json,serialization,asp.net-mvc-4,Json,Serialization,Asp.net Mvc 4,我想将我的mvc应用程序中的验证错误列表返回到客户端,以便我可以使用接收对象的s 我可以得到一个字段列表,以及以任何最合适的方式应用于这些字段的erorr 我已经尝试了一些格式,包括字典,但没有一种按照验证库的要求序列化到正确的结构 即 我所有的例子似乎都是按照 {"Key": "fieldname", "Value" : "some error for fieldname"} 返回数据的最佳方式是什么?如何以我需要的正确方式将其序列化?我建议您使用(它也是ASP.NET MVC 4的默认JS
{"Key": "fieldname", "Value" : "some error for fieldname"}
返回数据的最佳方式是什么?如何以我需要的正确方式将其序列化?我建议您使用(它也是ASP.NET MVC 4的默认JSON序列化程序)及其JsonWriter
:
StringWriter errorsStringWriter = new StringWriter();
JsonWriter errorsJsonWriter = new JsonWriter(jsonStringWriter);
errorsJsonWriter.WriteStartObject();
errorsJsonWriter.WritePropertyName("fieldname");
errorsJsonWriter.WriteValue("some error for fieldname");
errorsJsonWriter.WritePropertyName("fieldname2");
errorsJsonWriter.WriteValue("some error for fieldname2");
...
errorsJsonWriter.WriteEndObject();
errorsJsonWriter.Flush();
您可以使用ContentResult
返回以这种方式生成的JSON:
return Content(errorsStringWriter.GetStringBuilder().ToString(), "application/json");
更新
还通过JObject
支持动态JSON。在这种情况下,您的代码可以如下所示:
var jsonObject = new JObject();
jsonObject.Add("fieldname", "some error for fieldname");
jsonObject.Add("fieldname2", "some error for fieldname2");
...
return Content(jsonObject.ToString(Newtonsoft.Json.Formatting.None), "application/json");
在这种情况下,创建ContentResult
如下所示:
var jsonObject = new JObject();
jsonObject.Add("fieldname", "some error for fieldname");
jsonObject.Add("fieldname2", "some error for fieldname2");
...
return Content(jsonObject.ToString(Newtonsoft.Json.Formatting.None), "application/json");
这看起来很有希望,必须尝试使用json对象返回[[]@DanielPowell你是说
返回json(jsonObject)代码>方法?是的,请看@DanielPowell,直到今天晚些时候我才能重新测试它,此时我只能建议在向JArray添加对象之前catsing todynamic
:jsonArray.Add(json为dynamic)代码>。请检查,并让我知道这是否有帮助。