如何从格式化为JSON字符串的字符串中获取值?

时间:2014-09-12 02:18:34

标签: c# json string

我有一个格式如下的字符串:

[["addr","field"],["Administrator@cadomain.com",1000],["test1@cadomain.com",1001],["test2@cadomain.com",1002],["67656x3434",100],["99999",511],["79898",400],["545654",561],["7979",200],["6776767",201],["4656",300],["88888",5000]]

我想在字段(键)上获得addre(value)。 我读了一些关于如何从JSON字符串获取值的文章:

Read JSON string as key value

How to read this json string using c#?

但它对我不起作用。

任何想法,伙计们?

1 个答案:

答案 0 :(得分:1)

如果您使用Json.Net库来解析JSON,您可以将数据转换为Dictionary<int, string>,如下所示:

JToken token = JToken.Parse(json);

Dictionary<int, string> dict = 
    token.Skip(1).ToDictionary(a => (int)a[1], a => (string)a[0]);

然后您可以像通常那样使用字典来访问数据。

演示:https://dotnetfiddle.net/Icyv1O


如果你只能使用.Net 2.0,你可以这样做:

JToken token = JToken.Parse(json);
Dictionary<int, string> dict = new Dictionary<int, string>();

bool skippedFirstItem = false;
foreach (JToken item in token)
{
    if (skippedFirstItem)
        dict.Add((int)item[1], (string)item[0]);
    else
        skippedFirstItem = true;
}

演示:https://dotnetfiddle.net/zDvQFF