【问题标题】:NewtonSoft JSON Deserialize getting KEY valueNewtonSoft JSON反序列化获取KEY值
【发布时间】:2017-06-13 14:07:09
【问题描述】:

大家好。 我想知道这怎么可能(如果是的话)做这样的把戏(我正在使用 c# 和 NewtonSoft JSON 库) 1.如果我查找官方文档,有这样的例子:`

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

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

Console.WriteLine(account.Email);`

我同意,如果可行的话。我可以使用电子邮件作为密钥找到EmailVALUE。 2. 但是,如果我不知道我得到的 KEY,如何找到所有对(Key:Value)?例如,如果我有一些 JSON,例如:

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

如果我对 KEYS 进行硬编码,我可以找到 VALUE,例如:

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、a、d”等键? 谢谢大家

【问题讨论】:

  • JSON 是结构化数据。您想将其视为非结构化平面数据吗?为什么?这里的用例是什么?你想解决什么问题?
  • 我昨晚才写的这篇文章应该对你有帮助stackoverflow.com/questions/44511199/…

标签: c# json parsing json.net


【解决方案1】:

如果您按如下方式解析 JSON:

var jObj = JObject.Parse(jsonString);

你可以迭代它的属性:

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

【讨论】:

    猜你喜欢
    • 2013-06-06
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多