如何使用JSON.net序列化非标准JSON?

时间:2017-02-24 21:23:29

标签: c# json json.net

我正在访问第三方供应商的Web服务以获取客户端数据。问题是,JSON没有在一致命名的层次结构中进行格式化,因此使用它非常困难。以下是数据结构的示例:

{
   "0": {
      "account": {
         "id": 97657
      },
      "warehouse": {
         "sid": "9999"
      },
      "special": {
         "value_one": "306"
      }
   },
   "1": {
      "account": {
         "id": 97722
      },
      "warehouse": {
         "sid": "9999"
      },
      "special": {
         "value_one": "444"
      }
   },
   "2": {
      "account": {
         "id": 88843
      },
      "warehouse": {
         "sid": "9999"
      },
      "special": {
         "value_one": "222"
      }
   },       
   "errno": 0,
   "errmsg": "Operation completed with no errors"
}

我尝试了很多方法来解析数据,但没有任何工作。我唯一的成功是手动输入路径,如:

JObject objJson = (JObject)JToken.ReadFrom(new JsonTextReader(reader)); 
string id = (string)objJson["0"]["account"]["id"];
string sid = (string)objJson["0"]["warehouse"]["sid"];

尝试任何动态抛出错误“使用无效键值访问JObject值:0。期望对象属性名称。”

for (int i = 0; i < objJson.Count; i++)
{                
   string id = (string)objJson[i]["account"]["id"];                    
}

更新:此类型的其他问题有一个共同的父母。这个没有。

0 个答案:

没有答案