【问题标题】:Deserialize JSON string into .net Object Nested (Collection) Dictionary将 JSON 字符串反序列化为 .net 对象嵌套(集合)字典
【发布时间】:2016-09-14 21:04:11
【问题描述】:

我在这里可能是个白痴,但我在过去的一个小时里一直在看这个,我无法弄清楚如何做到这一点。我发现解决这些问题的最佳方法是让它炖一会儿,同时发布一个堆栈溢出问题,以防其他人有同样的问题。 无论如何,我有一个看起来像这样的 json 对象:

 [{
 "wackyId": "wck1",
 "wackyType": "wck2",
 "wackyCnfdc": "wck3",
 "wckyArr": [{
    "fieldName": "Full_Name",
    "fieldValue": "Some Text here",
    "fieldConfidence": "0.3"
 }, {
    "fieldName": "Full_Name",
    "fieldValue": "Some Text here2",
    "fieldConfidence": "0.2"
 }, {
    "fieldName": "Full_Name",
    "fieldValue": "Some Text here3",
    "fieldConfidence": "0.3"
  }]
}]

我正在尝试将其转换为可用的 .net 对象...

这是我目前所拥有的

public class WckyObj
{
  [JsonProperty("wackyId")]
  public string wackyId{get; set;}
  [JsonProperty("wackyType")]
  public string wackyType{get; set;}
  [JsonProperty("wackyCnfdc")]
  public string wackyCnfdc{get; set;}
  [JsonProperty("fields)]
  public List<multiFields> mutliFields {get; set;}
}

public class multiFields{
  [JsonProperty("fields")]
  public IEnumerable<IDictionary<string, string>> multiFields {get;set;}
}

现在我正在返回一个没有值的结果集???不知道我错过了什么。我可能已经盯着它很久了。

编辑:好眼睛海报。我应该首先通过 JSON lint 运行我的 json,但我对自己的技能过于自信。更新为更正确

【问题讨论】:

标签: c# json


【解决方案1】:

如果您的字段名称与 JSON 名称匹配,则您不需要属性。此模型应与您的 JSON 匹配:

public class WckyObj
{
    public string wackyId {get; set;}
    public string wackyType {get; set;}
    public string wackyCnfdc {get; set;}
    public List<WckyArray> wckyArr {get; set;}
}

public class WckyArray
{
    public string fieldName {get; set;}
    public string fieldValue {get; set;}
    public string fieldConfidence {get; set;}
}

现在您应该可以通过 JsonConvert.DeserializeObject&lt;List&lt;WckyObj&gt;&gt; 反序列化您的 JSON

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 2018-03-02
    • 2019-09-11
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多