当前位置: 首页 > 面试题库 >

从C#中的json字符串中查找所有出现的值

费和惬
2023-03-14
问题内容

我有一个包含一些数据的JSON对象,我想获取每次出现的特定键名的所有值。是否有任何预定义的方法来搜索JSON对象中所有出现的键或需要编写用户定义的方法?

样本杰森

[{"id":"23","name":"sunny","className":"2","class" :{"className":"1","class2" :{"className":"3","class" :{"className":"4"}}}}]

问题答案:

可以使用LINQ to JSON通过使用SelectTokens具有递归路径的方法来实现..className

class Program
{
    static void Main(string[] args)
    {
        JObject jObject = JObject.Parse(jsonString);

        // You would use this because you have an array.
        // JArray jObject = JArray.Parse(jsonArray);

        // .. - recursive descent
        var classNameTokens = jObject.SelectTokens("..className"); 
        var values = classNameTokens.Select(x => (x as JValue).Value);
    }

    static string jsonString = @"{'id':'23','name':'sunny','className':'2','class' :{'className':'1','class2' :{'className':'3','class' :{'className':'4'}}}}";
    static string jsonArray = @"[{'id':'23','name':'sunny','className':'2','class' :{'className':'1','class2' :{'className':'3','class' :{'className':'4'}}}}]";
}

参考文献:

Json.NET-文档-解析JSON

Json.NET
6.0版本1-JSONPath和F#支持

JSONPath表达式



 类似资料:
  • 问题内容: 我正在尝试查找“ |”的所有出现 在一个字符串中。 但我得到一个错误: 问题答案: 功能: 将返回的索引列表中的出现。

  • 问题内容: 我正在尝试查找Java字符串中所有出现的子字符串。 例如:在“ ababsdfasdfhelloasdf”中搜索“ asdf”将返回[8,17],因为有2个“ asdf”,一个在位置8,另一个在17。在“ aaaaaa”中搜索“ aa”将返回[0, 1,2,3,4],因为位置0、1、2、3和4处有一个“ aa”。 我尝试了这个: 可以在Python中解决此问题,如下所示: 其中“ wo

  • 问题内容: 我需要解析一个HTML文档并查找其中所有出现的字符串。 我目前将HTML加载到字符串变量中。我只需要字符位置,这样我就可以遍历列表以在字符串之后返回一些数据。 该函数仅返回第 一个 匹配项。如何 全部 归还呢? 问题答案: 在不使用正则表达式的情况下,类似这样的方法应该可以返回字符串位置:

  • 本文向大家介绍在C ++中查找一个字符串中所有出现的索引,包括了在C ++中查找一个字符串中所有出现的索引的使用技巧和注意事项,需要的朋友参考一下 假设我们有字符串str和另一个子字符串sub_str,我们必须找到str中所有出现的sub_str的索引。假设str为“ aabbababaabbbabbabaaabba”,sub_str为“ abb”,则索引将为1 9 13 18。 为了解决这个问题

  • 本文向大家介绍在C ++中查找所有好的字符串,包括了在C ++中查找所有好的字符串的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串s1和s2。这些字符串的大小为n,我们还有另一个字符串称为evil。我们必须找到好字符串的数量。 如果字符串的大小为n,则按字母顺序大于或等于s1,按字母顺序小于或等于s2,并且作为子字符串不包含邪恶,则该字符串称为良。答案可能非常大,因此请以10 ^ 9

  • 问题内容: 我正在尝试使用JSON从服务器获取对象数组。 服务器向我发送以下字符串。 现在,如果您仔细查看字符串,您会发现它包含一个 而不是every 。该字符串目前无法格式化为JSONArray。所以,我需要更换的每个实例 有 ,这将有一个非常简单的任务,也 没有一个 转义序列 。 我尝试使用以下代码。 但这给了我以下例外。 我的整个代码,以防万一: 问题答案: 试试这个: 因为反斜杠是正则表达