相关文章推荐
气宇轩昂的香瓜  ·  Python ...·  4 天前    · 
傻傻的铁链  ·  WPF ...·  11 月前    · 
年轻有为的弓箭  ·  python - ...·  1 年前    · 
static void Main(string[] args)             var json = "[{\"这是info1.key1\":\"这是info1.value1\",\"这是info1.key2\":\"这是info1.value2\"},{\"这是info2.key1\":\"这是info2.value1\",\"这是info2.key2\":\"这是info2.value2\"}]";             var list = JsonConvert.DeserializeObject(json) as JArray;             var listdata = new List();             foreach (var item in list)                 switch (item.Type)                     case JTokenType.Object:                         ChildrenTokens(item, listdata);                         break;                     case JTokenType.Property:                         listdata.Add(item);                         break;                     default:                         throw new Exception($"暂未适配该类型");             //遍历JProperty             foreach (var item in listdata)                 var jProperty = item.ToObject();                 string name = jProperty.Name;                 JToken value = jProperty.Value;             Console.Read();         private static void ChildrenTokens(JToken jObject, List jTokens)             if (jTokens == null) throw new Exception("接收对象不能为空");             var childrens = jObject.Children();             foreach (var item in childrens)                 switch (item.Type)                     case JTokenType.Object:                         ChildrenTokens(item, jTokens);                         break;                     case JTokenType.Property:                         jTokens.Add(item);                         break;                     default:                         throw new Exception($"暂未适配该类型"); using Newtonsoft.Json;using Newtonsoft.Json.Linq;using System;using System.Collections.Generic;namespace UnitTest{ class Program { static void Main(string[] args) { var json = "[{\"这是info1.key1\":\"这是info1.value1\"...
在原来解析json数据是,一般都是用反序列化来实现json数据的解读,这需要首先知道json数据的结构并且建立相应的类才能反序列化,一旦遇到动态的json数据,这种方法就不使用。 为了解决动态解析json数据,微软有个Newtonsoft.Json封装类十分好用,里面的 JToken 直接实现ling查询。
Newtonsoft.Json是一个用于.NET平台的JSON框架。它是最流行的JSON框架之一,提供了从JSON字符串到.NET对象的序列化和反序列化。 JObject 是Newtonsoft.Json中的一个类,代表一个JSON对象。它使用键值对的形式存储JSON属性,其中键是字符串,值可以是任何类型,包括另一个 JObject ,JArray,字符串,数字,布尔等等。 使用 JObject 可以轻松地将JSON字符串转换为.NET对象,或者将.NET对象序列化为JSON字符串。例如,我们可以使用 JObject .Parse方法将一个JSON字符串解析为一个 JObject 对象,然后可以使用索引符号访问其中的属性。同时,我们也可以使用 JObject .FromObject方法将一个.NET对象转换为 JObject 对象,然后可以使用toString()函数将其转换为JSON字符串格式。 总之,Newtonsoft.Json和 JObject 是.NET平台中非常有用的JSON序列化和反序列化工具,它们可以方便地将JSON数据转换为.NET对象,反之亦然。当我们需要使用JSON数据来与其他平台通信时,这一工具可以让我们更高效地完成数据传输,并且保证数据的完整性。