2014-03-05 159 views
0

如果反序列化的对象看起来像这样(其中键Ioc,Name,id和时间戳是静态的,并且字段键是动态的 - 意味着它可能包含可变数量的项目) ???反序列化一个复杂的动态JSON字符串

{ 
    "moduleinstances": [ 
    { 
     "Ioc": "ioc1", 
     "Name": "name1", 
     "fields": { 
      "PV_PREFIX": "PIPE", 
      "TIMEOUT": "1" 
     }, 
     "id": 25, 
     "timestamp": "/Date(1393518678000)/" 
    } 
    ] 
} 

如何反序列化这样的字符串?

+1

尝试[this site](http://json2csharp.com/) –

+0

它不回答我的问题 – maslick

+0

尝试L.B提及的网站并使用Json.Net。 –

回答

1

的秘诀就是保持反序列化JSON在最一般的形式可能:

Dictionary<string, object> theData= new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(jsonString); 

Dictionary<string, object> fieldsNode = (Dictionary<string, object>)theData["fields"]; 

string pv_prefix = (string)fieldsNode["PV_PREFIX"]; 
string timeout = (string)fieldsNode["TIMEOUT"]; 

Deserialize()的调用创建的Dictionary<string, object>树,你可以随意穿越。