[英]Find a value of all occurrences from the json string in c#
I have a JSON object with some data and I want to get all the values of each occurrence of specific key name. 我有一个包含一些数据的JSON对象,我想获取每次出现的特定键名的所有值。 Is there any predefined method to search for a key in JSON object for all occurrences or need to write user defined method? 是否有任何预定义的方法来搜索JSON对象中所有出现的键或需要编写用户定义的方法?
Sample Json 样本杰森
[{"id":"23","name":"sunny","className":"2","class" :{"className":"1","class2" :{"className":"3","class" :{"className":"4"}}}}]
This can be achieved with LINQ to JSON by using the SelectTokens
method with a recursive path ..className
这可以通过使用带有递归路径..className
的SelectTokens
方法,使用LINQ to JSON来实现。
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'}}}}]";
}
References: 参考文献:
Json.NET - Documentation - Parsing JSON Json.NET-文档-解析JSON
Json.NET 6.0 Release 1 - JSONPath and F# Support Json.NET 6.0版本1-JSONPath和F#支持
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.