如何在JSON.NET中读取json对象值中的long值数组

问题描述 投票:0回答:3

我有一个喜欢跟随的json。

"bookshelf": {
               "shelfId": 5752814017970176,
               "shelfName": "Novels",
               "description": null,
               "bookOrder": "[5720369633689600, 5631072867975168, 5765651641663488, 5685154290860032, 4675571090980864, 4721509306204160]",
               "createrType": "TEACHER",
           }

我需要读取值bookOrder作为长值数组。如何在c#中使用Json.net?

c# asp.net arrays json json.net
3个回答
0
投票

你的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);
 }

0
投票

您可以通过使用索引器来获取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);

输出:

enter image description here


0
投票

首先,您的图书订单列表应该是正确的数组。你有一个字符串。

"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]);
© www.soinside.com 2019 - 2024. All rights reserved.