如何在 JSON 字符串中搜索字段?

use*_*119 2 c# json json.net

我有一个 JSON 字符串:[{"number":"123-456-789","array":["1", "2"]}]. 我想检查这个 JSON 是否包含一个"number"字段。我在尝试什么:

string jsonString = [{"number":"123-456-789","array":["1", "2"]}];
Newtonsoft.Json.Linq.JArray jsonObject = JArray.Parse(jsonString);
Run Code Online (Sandbox Code Playgroud)

然后我如何“搜索”jsonObject指定字段?

Mik*_*son 5

如果你想测试“number”属性是否存在,那么你可以使用:

bool exists = jsonObject[0].Children<JProperty>().Any(p => p.Name == "number");
Run Code Online (Sandbox Code Playgroud)

如果要获取“number”属性的值,则可以使用

string number = jsonObject[0]["number"].Value<string>();
Run Code Online (Sandbox Code Playgroud)

编辑 这是获取“数组”属性的方法

string[] arr = jsonObject[0]["array"].Values<string>().ToArray();
Run Code Online (Sandbox Code Playgroud)