2013-04-20 207 views
0

我從Twitter API SEARCH獲取了JSON數據。 我試圖將這些數據反序列化爲對象。反序列化JSON數據

JSON的方案是這樣的:

{ 
     "element": INT, 
     "element2": STRING, 
     .. 
     .. 
     "Results":[ 
        { 
         "user":STRING, 
         "image":STRING, 
         .. 
         .. 
        } 
       ] 
    } 

我怎麼會反序列化使用JSON工具包或其他東西的JSON元素融入對象?

+0

也許這會幫助[http://stackoverflow.com/questions/7895105/json -deserialize-c-sharp] [1] [1]:http://stackoverflow.com/questions/7895105/json-deserialize-c-sharp – 2013-04-20 12:17:23

回答

1

創建一個相匹配的JSON模式

public class Data 
{ 
    public string Element{get;set;} 
    public string Element2{get;set;} 
    public List<Result> Results{get;set;} 
} 
public class Result 
{ 
    public string User{get;set;} 
    public string Image{get;set;} 
} 

類,並使用JSON.NET反序列化

var result = JsonConvert.DeserializeObject<Result>(json); 
+0

其中一個元素的第一個字母必須是大寫字母?它不是有區別的嗎? – user1341970 2013-04-20 12:37:20

+0

我試過這個,這是行不通的。 – user1341970 2013-04-20 12:53:18

1

如果你有正確的類型定義的問題,你可以隨時使用使用動態反序列化Json.Net :

var original = JsonConvert.DeserializeObject<dynamic>(jsonstring); 

然後建立你想要的對象bas編輯它(如果例如原始的一個包含開銷信息集,並且你不需要全部):

var somepart = new { 
         E1 = original.element1, 
         E2 = original.element2 
        }; 
+0

我不知道如何訪問「結果」元素,因爲它反序列化它仍然像一個JSON。 – user1341970 2013-04-20 15:36:26