如何在C#中检查JSON字符串里JToken键(如age)的存在性?
判断JSON字符串中是否存在"age"键的实用方法
针对你给出的C# JSON字符串,以下是几种可靠的判断方式:
方法一:使用Json.NET(Newtonsoft.Json)
这是.NET生态中广泛使用的JSON处理库,步骤如下:
- 先通过NuGet安装包:
Install-Package Newtonsoft.Json - 编写代码:
using Newtonsoft.Json.Linq; string jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; JObject jsonObject = JObject.Parse(jsonString); bool hasAgeKey = jsonObject.ContainsKey("age"); // 执行后hasAgeKey的值为true
方法二:使用.NET内置的System.Text.Json(.NET Core 3.0+ / .NET 5+)
无需额外安装包,直接用框架自带的API:
using System.Text.Json; string jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; using JsonDocument doc = JsonDocument.Parse(jsonString); bool hasAgeKey = doc.RootElement.TryGetProperty("age", out _); // 执行后hasAgeKey的值为true
不推荐的方法:直接字符串匹配
虽然可以通过jsonString.Contains("\"age\":")来判断,但这种方式存在误判风险——如果JSON中的某个字符串值包含"age:",就会返回错误结果,只适合临时快速验证,不建议在生产代码中使用。
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

