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

本文关键字:字符串 获取 JSON 格式化 | 更新日期: 2023-09-27 18:21:39

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

[["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]]

我想得到基于字段(键)的地址(值)。我在上读到一些关于如何从JSON字符串中获取值的文章

读取JSON字符串作为键值

如何使用c#读取这个json字符串?

但这对我不起作用。

有什么想法吗,伙计们?

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

如果您使用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