2014-03-05 47 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>樹,你可以隨意穿越。