C# 使用JObject解析嵌套json

本文介绍了如何使用Newtonsoft.Json库解析JSON字符串,展示了如何提取order、gwd、pageSize和pageNo等关键字段。适合JSON处理初学者和开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.导入依赖包Newtonsoft.Json.dll

2.json字符串示例

{"order":"getDeviceData","data":{"gwd":"1","pageSize":10,"pageNo":1}}

3.解析json字符串

JObject jsonObj = JObject.Parse(msg);
string order = jsonObj["order"].ToString();
string gwd = ((JObject)jsonObj["data"])["gwd"].ToString();
string pageSize = ((JObject)jsonObj["data"])["pageSize"].ToString();
string pageNo = ((JObject)jsonObj["data"])["pageNo"].ToString();
C#中定义不定类型嵌套JSON,可以使用`dynamic`或`JObject`来动态处理JSON数据。以下是两种常见的方法: ### 方法一:使用 `dynamic` ```csharp using System; using System.Collections.Generic; using Newtonsoft.Json; public class Program { public static void Main() { string json = @"{ ""name"": ""John"", ""age"": 30, ""address"": { ""street"": ""123 Main St"", ""city"": ""New York"" }, ""phones"": [ { ""type"": ""home"", ""number"": ""123-456-7890"" }, { ""type"": ""work"", ""number"": ""098-765-4321"" } ] }"; dynamic data = JsonConvert.DeserializeObject<dynamic>(json); Console.WriteLine(data.name); Console.WriteLine(data.address.city); Console.WriteLine(data.phones[0].number); } } ``` ### 方法二:使用 `JObject` ```csharp using System; using System.Collections.Generic; using Newtonsoft.Json.Linq; public class Program { public static void Main() { string json = @"{ ""name"": ""John"", ""age"": 30, ""address"": { ""street"": ""123 Main St"", ""city"": ""New York"" }, ""phones"": [ { ""type"": ""home"", ""number"": ""123-456-7890"" }, { ""type"": ""work"", ""number"": ""098-765-4321"" } ] }"; JObject data = JObject.Parse(json); Console.WriteLine(data["name"]); Console.WriteLine(data["address"]["city"]); Console.WriteLine(data["phones"][0]["number"]); } } ``` 这两种方法都可以动态地处理不定类型的嵌套JSON数据。`dynamic` 方法使用起来更简洁,但缺乏编译时类型检查;`JObject` 方法则提供了更多的功能和数据操作能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值