JSon在C#中多次查找多个特定值

时间:2018-01-15 11:27:13

标签: c# json findall

我想搜索或迭代一个非常庞大的JSon,并在每次出现时找到3个键值对。是否有任何方法或功能可以帮助我这样做?或者甚至可能吗?

我需要找到第一个值,然后从第二个点开始,之后是第三个值,然后是第一个值。 我知道FindAll用于字符串,但将JSon作为字符串处理并不是那么好。

编辑:我正在使用C#

1 个答案:

答案 0 :(得分:0)

如果您的数据量很大,我建议您将内容流式传输并进行处理。

为此,您可以使用JsonTextReader - https://www.newtonsoft.com/json/help/html/ReadJsonWithJsonTextReader.htm

    var filePath = Path.GetTempFileName();

    File.WriteAllText(filePath, "{bigJson: true}");

    var stream = File.Open(filePath, FileMode.Open);

    JsonTextReader reader = new JsonTextReader(new StreamReader(stream));
    while (reader.Read())
    {
        if (reader.Value != null)
        {
            Console.WriteLine("Token: {0}, Value: {1}", reader.TokenType, reader.Value);
        }
        else
        {
            Console.WriteLine("Token: {0}", reader.TokenType);
        }
    }