2017-06-13 584 views
0

美好的一天每個人。 我想知道這怎麼可能(如果是)做這種伎倆(我使用C#和NewtonSoft JSON庫) 1.如果我找一個官方文件,有這樣的例子:`NewtonSoft JSON反序列化獲取KEY值

string json = @"{ 
'Email': '[email protected]', 
    'Active': true, 
    'CreatedDate': '2013-01-20T00:00:00Z', 
    'Roles': [ 
    'User', 
    'Admin' 
    ] 
}"; 

Account account = JsonConvert.DeserializeObject<Account>(json); 

Console.WriteLine(account.Email);` 

我同意,如果有效。我可以使用Email AS KEY找到Email VALUE。 2.但是如果我不知道我得到的KEY,我怎麼能找到所有的對(Key:Value)?舉例來說,如果我有一些JSON,如:

"1": { "2": "3", "4": "5" } 
"a": { "b": "c", "d": "e" } 

我能找到價值,如果我硬編碼KEYS,如:

dynamic JSONOutput = JsonConvert.DeserializeObject(HTMLOutput); 
Console.WriteLine(JSONOutput["1"]["2"]); //Output is 3 
Console.WriteLine(JSONOutput["1"]["4"]); //Output is 5 
Console.WriteLine(JSONOutput["a"]["b"]); //Output is c 
Console.WriteLine(JSONOutput["a"]["d"]); //Output is e 

但我怎麼能拿到鑰匙「1,2,一,d 「等等? 感謝名單爲大家

+0

JSON是結構化數據。你想把它看作是非結構化的平面數據?爲什麼?這裏的用例是什麼?你想解決什麼問題? – mason

+0

這篇文章我只寫昨晚應該可以幫助你https://stackoverflow.com/questions/44511199/convert-json-string-from-camel-case-to-pascal-case-using-c-sharp/44511499#44511499 – spender

回答

0

如果你分析你的JSON如下:

var jObj = JObject.Parse(jsonString); 

你可以遍歷其屬性:

foreach(var kvp in jObj.Cast<KeyValuePair<string,JToken>>().ToList()) 
{ 
    //kvp.Key 
    //kvp.Value 
}