【问题标题】:VB.NET - convert JSON data into arrayVB.NET - 将 JSON 数据转换为数组
【发布时间】:2016-06-20 03:44:15
【问题描述】:

我有一个 JSON 结果,我正在尝试使用 Newtonsoft.Json 将其转换为数组。 我从网站获得的 JSON 结果类似于(为便于阅读而格式化):

{
"headers":  
    [
        "Shift Date",
        "Shift Number"
    ],
"values":
    [
        ["2016-06-19T00:00:00",0],
        ["2016-06-19T00:00:00",2],
        ["2016-06-19T00:00:00",1]
    ]
}

我发现的代码示例说我应该能够使用

Dim arr As JArray = JArray.Parse(response.Content)

这会导致错误:

An unhandled exception of type 'Newtonsoft.Json.JsonReaderException' occurred in Newtonsoft.Json.dll

Additional information: Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1.

有关可能导致问题的任何指导?我怀疑它与“标题”有关,但无法在网上找到有关如何解决的任何建议

【问题讨论】:

    标签: arrays json vb.net


    【解决方案1】:

    您正在使用JArray,但您的输入实际上是一个对象 - 即数据是

    {..stuff..}

    而不是

    [ {..stuff..} ]

    如果您将输入重组为:

    [{
        "headers": [
            "Shift Date",
            "Shift Number"
        ],
        "values": [
            ["2016-06-19T00:00:00", 0],
            ["2016-06-19T00:00:00", 2],
            ["2016-06-19T00:00:00", 1]
        ]
    }]
    

    然后您可以使用JArray.Parse(strJson) 方法。

    在当前结构中,你应该使用JObject.Parse

    【讨论】:

    • 谢谢。我对数据的外观没有太多控制权(来自外部网站)。如果我只是添加方括号,我的数组有 2 列和 1 行。将其处理成各种数据表以便我可以处理数据的方法是什么?如果我使用 JObject,它会给出一个数组还是一个项目(抱歉,这对我来说是全新的)
    • @StephenPefanis - 我认为将 Json 转换为数据表的方法构成了一个新问题!如果您觉得对您有帮助,请随时接受我的回答。
    • 不用担心。谢谢罗宾。将接受,因为它已经解决了初始查询。
    猜你喜欢
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    相关资源
    最近更新 更多