2017-02-20 174 views
0

它一直在抓我的頭&如何將json字符串轉換爲對象。如何將JSON字符串轉換爲C中的對象#

這是我的json。

{ 
"statusCode": 200, 
"data": { 
"items": [ 
    { 
    "id": 2623, 
    "JsonData": "{\"Number\":143,\"IsDeleted\":false,\"GapAnalysisChecked\":false,\"ShowGraphics\":true,\"Impact\":{\"Value\":\"DefaultNodeTitle_Impact\",\"Details\":null,\"DefaultValue\":\"DefaultNodeTitle_Impact\",\"Id\":\"0a507b25-cf0f-4ee3-8262-76b29adbda4e\"},\"Gap\":{\"Value\":\"DefaultNodeTitle_Gap\",\"Details\":null,\"DefaultValue\":\"DefaultNodeTitle_Gap\",\"Id\":\"cd411a47-a215-4dda-a8af-19686ad0d090\"}"}] 
} 

}

我需要到JsonData轉換爲單個對象。

var obj = JsonConvert.DeserializeObject(res.JsonData); 
res.JsonData = obj; //this is giving error.- Cannot convert implicilty string to an object 

與它一起,我與permutatiation數試圖像DeserializeObject<Customer>() &所有這些事情。

我希望的輸出。

{ 
"statusCode": 200, 
"data": { 
"items": [ 
    { 
    "id": 2623, 
    "JsonData": object 
} 

MY DTO

public class Res 
{ 
    public string StatusCode {get;set;} 

    public string JsonData {get; set;} 
} 

任何幫助/建議高度讚賞。
謝謝。

+0

'//這是給error.'不是描述性的。什麼錯誤? – ColinM

+0

@ColinM,加上 –

+0

沒有看到你的代碼,'res.JsonData =(object)obj;'? – ColinM

回答

9

你錯過了 「]」

編輯

一種可行的實施是這樣的:

你的類

public class Res{ 

    public string statusCode {get;set;} 
    public Data data {get; set;} 


} 


public class Data{ 

    public List<Item> items {get; set;} 

    } 


public class Item{ 

    public string id {get; set;} 
    public JsonData JsonData {get;set;} 

} 

public class JsonData{ 

    public string name {get; set;} 
    public string from {get; set;} 
} 

您的JSON

{ 
"statusCode":200, 
"data" : 
    { 
     "items" : 
      [ 
      { 
       "id":2623, 
       "JsonData" :{ 
       "name":"joab", 
       "from":"Brazil"} 
       }, 
       { 
       "id":2624, 
       "JsonData": { 
       "name":"mary", 
       "from":"USA" 
       } 
      } 
      ] 
    } 
} 

var res = new JavaScriptSerializer().Deserialize<Res>(yourjson); 
+0

更正了json字符串 –

+0

你應該已經展示了你的類。 – joab

+0

添加了該類 –

0

1 - 添加新的類
2 - 複製您的JSON
3 - Visual Studio的菜單>編輯>粘貼>粘貼JSON作爲類

See

相關問題