我正在c#中测试一些api调用,并得到以下JSON响应:
{
"message": "The request is invalid. Model validation failed.",
"validationErrors": {
"": {
"reasons": [
"A customer must be added to the order before it can be placed."
]
}
}
}
我想将此响应映射到带有JSON Deserializer的类,并且无法控制响应的形成方式。如何处理validationErrors中的空字段,以便仍然可以访问对象中的原因列表?
注意:当我通过json2csharp运行它时,它为validationErrors类中的该字段提供了不太有用的映射。
public __invalid_type__ __invalid_name__ {get;set;}
参考方案
反序列化为Dictionary<string, ValidationError>
:
public class ValidationError
{
public List<string> reasons { get; set; }
}
public class RootObject
{
public string message { get; set; }
public Dictionary<string, ValidationError> validationErrors { get; set; }
}
这将与javascriptserializer和json.net一起使用。如果使用的是DataContractJsonSerializer
(标记为datacontractjsonserialize),则需要设置DataContractJsonSerializer.UseSimpleDictionaryFormat = true
(仅.Net 4.5及更高版本)。
我有一个像bellow的json数组:{ "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sa…
json_encode网址失败 - php有人在this bug附近吗?echo json_encode(array('url'=>'/foo/bar')); {"url":"\/foo\/bar"} 我使用Zend_Json and Zend_Json_Expr以便我甚至可以在js对象中获取回调函数-但我无法获得…
json.dumps弄乱顺序 - python我正在使用json module创建一个包含类似条目的json文件json.dumps({"fields": { "name": "%s", "city": "%s", "status": "%s", "cou…
JSON SCHEMA PATTERN逗号分隔列表 - python我的json模式中具有以下模式,并且我需要根据以下模式包含逗号分隔的值。当前模式只能像DV2一样处理一种模式所以我应该如何修改我的模式以包括多个字符串,如下所示,但它应该与声明的模式匹配。例如:“ DV2”,“ DEV1”,“ DEV3”,“ ST”, "ENVIRONMENT": { "type": "st…
JSON.NET如何删除节点 - c#我有一个像下面这样的json:{ "d": { "results": [ { "__metadata": { }, "prop1": "value1", "prop2": "value2", "__some…