当前位置: 首页 > 编程语言 > C#

访问JTOKEN,json.net中的所有项分享

时间:2023-04-11 03:02:19 C#

访问JTOKEN,json.net中的所有项separator","name":"Address","value":"","FieldID":40},"LOCATION":{"type":"locations","name":"Location","keyword":{"1":"LOCATION1"},"value":{"1":"美国"},"FieldID":41},"FLOOR_NUMBER":{"type":"number","name":"FloorNumber","value":"0","FieldID":55},"self":{"id":"2","name":"AddressMap"}}}如何获取这个订单Allkey卡中包含的项目。例如,在上面的代码中,我想要“ADRESS_LOCATION”、“LOCATION”、“FLOOR_NUMBER”和“self”。谢谢您可以将JToken转换为JObject,然后使用Properties()方法获取对象属性列表。从那里,您可以轻松获得名称。像这样:stringjson=@"{""ADDRESS_MAP"":{""ADDRESS_LOCATION"":{""type"":""separator",""name"":""Address",""value"":"""",""FieldID"":40},""LOCATION"":{""type"":""locations"",""name"":""Location",""keyword"":{""1"":""LOCATION1""},""value"":{""1"":""UnitedStates""},""FieldID"":41},""FLOOR_NUMBER"":{""type"":""number",""name"":""FloorNumber",""value"":""0",""FieldID"":55},""self"":{""id"":""2"",""name"":""地址映射""}}}";JToken外=JToken.Parse(json);JObjectinner=outer["ADDRESS_MAP"].Value();列表键=inner.Properties().Select(p=>p.Name).ToList();foreach(键中的字符串k){Console.WriteLine(k);}输出:ADDRESS_LOCATIONLOCATIONFLOOR_NUMBERself除了接受的答案,我想给出一个答案,说明如何直接迭代Newtonsoft集合。它使用更少的代码,我猜它更有效,因为它不涉及转换集合。使用Newtonsoft.Json;使用Newtonsoft.Json.Linq;//解析数据JObjectmy_obj=JsonConvert.DeserializeObject(your_json);foreach(KeyValuePairsub_objin(JObject)my_obj["ADDRESS_MAP"]){Console.WriteLine(sub_obj.Key);我自己开始这样做是因为JsonConvert会自动将嵌套对象反序列化为JTokens(我认为是JObject、JValue或JArray)。我认为解析根据以下原则工作:如果你知道你收到的json的结构,那么我建议你有一个类结构来反映你在json中收到的内容。然后你可以调用它...AddressMapaddressMap=JsonConvert.DeserializeObject(json);(其中json是包含相关json的字符串)如果您不知道收到的json的格式,那么它会变得有点复杂,您可能需要手动解析它。详见http://www.hanselman.com/blog/NuGetPackageOfTheWeek4DeserializingJSONWithJsonNET.aspx以上为C#学习教程:访问JTOKEN,json.net所有项目共享的所有内容,如果对大家有用需要有待了解更多关于C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: