C#判断json是否存在某个节点,如果存在返回节点值,不存在返回默认值,可以处理嵌套节点
时间: 2024-11-06 20:18:26 浏览: 37
C#通过XML节点属性/属性值读取写入XML操作代码实例
在C#中,你可以使用Json.NET库来解析JSON并检查其是否存在特定节点。首先,你需要安装Json.NET,可以使用NuGet包管理器添加`Newtonsoft.Json`引用。以下是一个示例函数,它接受一个JSON字符串和键路径,如果找到该节点则返回值,否则返回指定的默认值:
```csharp
using Newtonsoft.Json.Linq;
public string GetNodeOrDefault(string json, string path, string defaultValue = "")
{
JObject jsonObject;
try
{
jsonObject = JObject.Parse(json);
}
catch (JsonException)
{
return defaultValue; // JSON解析失败,直接返回默认值
}
JToken node = jsonObject[path];
if (node != null) return node.Value<string>(); // 如果找到节点,获取并返回字符串值
return defaultValue; // 节点不存在,返回默认值
}
// 使用示例
string jsonString = "{\"name\":\"John\", \"age\":30, \"city\":{\"main\":\"New York\"}}";
string value = GetNodeOrDefault(jsonString, "city.main"); // 返回"New York"
value = GetNodeOrDefault(jsonString, "address.street", "Not Available"); // 返回"Not Available"
```
这个函数会递归地查找嵌套的节点。如果路径中的某个子节点不存在,它将沿着路径继续查找下一个节点,直到找到最后一个节点或遇到null。
阅读全文