如何在JSON.NET中读取json对象值中的long值数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在JSON.NET中读取json对象值中的long值数组相关的知识,希望对你有一定的参考价值。
我有一个喜欢跟随的json。
"bookshelf": {
"shelfId": 5752814017970176,
"shelfName": "Novels",
"description": null,
"bookOrder": "[5720369633689600, 5631072867975168, 5765651641663488, 5685154290860032, 4675571090980864, 4721509306204160]",
"createrType": "TEACHER",
}
我需要读取值bookOrder作为长值数组。如何在c#中使用Json.net?
答案
你的Json字符串产生一个这样的类:
public class RootObject
{
public Bookshelf bookshelf { get; set; }
}
public class Bookshelf
{
public long shelfId { get; set; }
public string shelfName { get; set; }
public object description { get; set; }
public long[] bookOrder { get; set; }
public string createrType { get; set; }
}
然后你可以像这样得到bookOrder
:
RootObject library=JsonConvert.DeserializeObject<RootObject>(jsonString);
long[] bookOrders=library.bookshelf.bookOrder;
测试:
foreach(var num in bookOrders)
{
Console.WriteLine(num);
}
另一答案
您可以通过使用索引器来获取Querying Json以获取长值数组
string json = File.ReadAllText(@"Path to your json file");
JToken jToken = JToken.Parse(json);
var longArray = jToken["bookshelf"]["bookOrder"].ToObject<long[]>();
然后你可以打印你的长阵列
foreach (long item in longArray)
Console.WriteLine(item);
输出:
另一答案
首先,您的图书订单列表应该是正确的数组。你有一个字符串。
"bookshelf": {
"shelfId": 5752814017970176,
"shelfName": "Novels",
"description": null,
"bookOrder": [5720369633689600, 5631072867975168, 5765651641663488, 5685154290860032, 4675571090980864, 4721509306204160],
"createrType": "TEACHER",
}
修复后,您可以将该支柱转换为多个数组。
var j = JsonConvert.DeserializeObject<JToken>(json);
Console.WriteLine(j["bookshelf"]["bookOrder"].ToObject<long[]>()[0]);
以上是关于如何在JSON.NET中读取json对象值中的long值数组的主要内容,如果未能解决你的问题,请参考以下文章