C#使用Newtonsoft.Json读取{ "success": true, "message": { "code": "10500", "content": null }, "data": { "Success": true, "Content": "数据上传成功", "Data": null, "Datas": null, "TotalRows": 0 } } 里Content和success的值
时间: 2025-05-23 21:17:45 浏览: 20
### C# 使用 Newtonsoft.Json 解析 JSON 并获取 `success` 和 `Content` 字段值
在 C# 中,可以利用 `Newtonsoft.Json` 库来解析 JSON 数据并提取所需的字段值。以下是具体实现方法:
#### 方法描述
通过 `JObject.Parse()` 将 JSON 字符串解析为对象,并使用属性访问器获取所需字段的值。对于复杂结构的数据(如嵌套的对象或数组),可以通过逐步导航的方式定位目标字段。
#### 示例代码
假设输入的 JSON 字符串如下:
```json
{
"success": true,
"content": {
"20180123": [
{ "houseid": "210166268", "city": "唐山", "pv": "1" },
{ "houseid": "210181300", "city": "唐山", "pv": "1" }
],
"20180124": [
{ "houseid": "210166268", "city": "唐山", "pv": "1" }
]
},
"message": "Success"
}
```
以下是一个完整的示例程序,展示如何解析该 JSON 并获取 `success` 和 `content` 的值:
```csharp
using System;
using Newtonsoft.Json.Linq;
class Program
{
static void Main()
{
string jsonString = @"
{
""success"": true,
""content"": {
""20180123"": [
{""houseid"": ""210166268"", ""city"": ""唐山"", ""pv"": ""1""},
{""houseid"": ""210181300"", ""city"": ""唐山"", ""pv"": ""1""}
],
""20180124"": [
{""houseid"": ""210166268"", ""city"": ""唐山"", ""pv"": ""1""}
]
},
""message"": ""Success""
}";
// 将 JSON 字符串解析为 JObject 对象
JObject jsonObject = JObject.Parse(jsonString);
// 获取 'success' 字段的布尔值
bool isSuccess = (bool)jsonObject["success"];
Console.WriteLine($"Is Success: {isSuccess}");
// 获取 'content' 部分作为子对象
JObject contentObject = (JObject)jsonObject["content"];
// 遍历 'content' 下的所有日期节点及其对应的房屋数据
foreach (var dateEntry in contentObject)
{
Console.WriteLine($"Date Key: {dateEntry.Key}");
JArray houseDataArray = (JArray)dateEntry.Value;
foreach (JObject houseItem in houseDataArray)
{
string houseId = (string)houseItem["houseid"];
string city = (string)houseItem["city"];
int pv = (int)houseItem["pv"];
Console.WriteLine($"\tHouse ID: {houseId}, City: {city}, PV: {pv}");
}
}
}
}
```
#### 输出结果
运行以上代码后,控制台将显示以下内容:
```
Is Success: True
Date Key: 20180123
House ID: 210166268, City: 唐山, PV: 1
House ID: 210181300, City: 唐山, PV: 1
Date Key: 20180124
House ID: 210166268, City: 唐山, PV: 1
```
---
#### 关键点说明
1. **JSON 转换为 JObject**
利用 `JObject.Parse(string)` 方法将 JSON 字符串转换为可操作的对象形式[^1]。
2. **动态访问字段**
可以通过索引方式(如 `jsonObject["field"]`)直接访问顶层字段;对于嵌套字段,则需逐层深入访问其子对象[^2]。
3. **处理数组类型**
如果某字段指向的是一个数组(如本例中的 `content[dateKey]`),则应将其强制转换为 `JArray` 后再逐一迭代其中的元素[^3]。
4. **强类型序列化**
若希望进一步提升性能与安全性,还可以定义相应的类模型并通过 `JsonConvert.DeserializeObject<T>()` 进行反序列化[^4]。
---
阅读全文
相关推荐


















