Deserailize JSON string



我有这种格式的JSON:

{
 "user": "123@abc",
 "filter": [
 {
"filterName": "Filter1",
"condition": "1",
"values": [
"123"
 ]
},
{
"filterName": "Filter2",
"condition": "2",
"values": [
"ABC",
"XYZ"
]
}
],
"onlyMerge": "true",
"mergeBy": [ 
  ]
 }

我正在使用这些类

 public class Outermost{
 public string user;
 public Root filter ;
 public string onlyMerge;
 public string mergeby;
}
 public class values {
     public string value { get; set; } 
 }
 public class Filters {
     public string filtername {get; set; }
     public string condition {get; set;}
     public values values { get; set; }
 }
 public class Root {
     public List<Filters> Filters { get; set; }
 }

JSONConvert.Deserialize(Outermost)我必须反序列化结构

将 JSON

粘贴到 http://json2csharp.com/中,您将看到 C# 类与 JSON 不匹配。

更新 2:

Visual Studio 2013有一个内置的Json到C#类转换器工具! :)


更新:

只是关于伟大工具的注意事项 http://json2csharp.com/:当使用具有复杂类型属性的对象时,您可能需要检查它创建的类,因为有时它会创建不必要/不需要的类。例:

杰森

var objJson = {
    "id_product": 19,
    "description": "Laptop",
    "_links": {
        "buy": {
            "href": "/Product/Buy/19",
            "title": "Buy It Now!"
        },
        "more_details": {
            "href": "/Product/Details/19",
            "title": "More Details..."
        }
    }
}; 

生成的类/类:

public class Buy
{
    public string href { get; set; }
    public string title { get; set; }
}
public class MoreDetails
{
    public string href { get; set; }
    public string title { get; set; }
}
public class Links
{
    public Buy buy { get; set; }
    public MoreDetails more_details { get; set; }
}
public class RootObject
{
    public int id_product { get; set; }
    public string description { get; set; }
    public Links _links { get; set; }
}

如您所见,BuyMoreDetails这两个类具有完全相同的结构和用途,因此您可能希望将其替换为更通用的类,而不是重复使用类(在某些情况下,这种冗余结构更合适)。在一个非常相似的场景中,我创建了一个名为 Link 的类。

原答案:

你说得不够多,无法确定你的问题是什么。尝试在将来更好地说明您的困难和需求。

但是,我想您的问题是抛出一些异常或某些属性未绑定......

请注意,在 JSON 示例对象中,filter 直接是一个集合,而不是一个内部有集合的属性。因此,只需更改
public Root filter; public List<Filters> filter { get; set; } .此外,mergeByvalues 是集合,而不是简单的字符串。您可以使用 http://json2csharp.com/自动生成 JSON 对象的相应 C# 类,并检查哪些属性不匹配...(或者,替换你的整个班级,这就是我推荐的......

相关内容

  • 没有找到相关文章

最新更新