如何从 JSON 对象解析整数列表

How to parse a list of Integers from a JSON object

我在我的应用程序中使用 "Newtonsoft.Json.Linq.JObject"。

我有一个接收格式为 JObject 的方法:

{
  "PersonnelIds": "[31,32,33,34]"
}

我想将 PersonnelIds 的内容解析为整数列表。

最好的方法是什么?

创建一个 class 来反序列化您的 json:

要创建 classes,您可以将 json 复制到剪贴板并使用

Edit / Paste special / Paste JSON as class

在visual studio(我用的是vs2013)。

然后反序列化你的字符串。

上查看我的解决方案

我可以看到 PersonnelIds 的值被写为字符串 "[31,32,33,34]" 因此要使用此语法解析它,您可以使用以下代码

JObject jObject = JObject.Parse(myjson);
JToken jToken = jObject.GetValue("PersonnelIds");
var array = JArray.Parse(jToken.Value<string>()).Select(x => (int)x).ToArray();

如果您的值不是字符串,那么您的 JSON 就像 {"PersonnelIds": [31,32,33,34] } 那么您可以使用以下代码解析它

JObject jObject = JObject.Parse(myjson);
JToken jToken = jObject.GetValue("PersonnelIds");
int[] array = jToken.Values<int>().ToArray();