.net 反序列化JSON

.net 反序列化JSON,.net,json,vb.net,deserialization,.net,Json,Vb.net,Deserialization,我试图使用Newtonsoft.JSON从API反序列化下面的JSON响应: { "status": "success", "data": { "candles": [ ["2015-12-28T09:15:00+0530", 1386.4, 1388, 1381.05, 1385.1, 788], ["2015-12-28T09:16:00+0530", 1385.1, 1389.1, 1383.85, 1385.5, 609], ["2

我试图使用Newtonsoft.JSON从API反序列化下面的JSON响应:

{
"status": "success",
"data": {
    "candles": [
        ["2015-12-28T09:15:00+0530", 1386.4, 1388, 1381.05, 1385.1, 788],
        ["2015-12-28T09:16:00+0530", 1385.1, 1389.1, 1383.85, 1385.5, 609],
        ["2015-12-28T09:17:00+0530", 1385.5, 1387, 1385.5, 1385.7, 212],
        ["2015-12-28T09:18:00+0530", 1387, 1387.95, 1385.3, 1387.95, 1208],
        ["2015-12-28T09:19:00+0530", 1387, 1387.55, 1385.6, 1386.25, 716],
        ["2015-12-28T09:20:00+0530", 1386.95, 1389.95, 1386.95, 1389, 727],
        ["2015-12-28T09:21:00+0530", 1389, 1392.95, 1389, 1392.95, 291],
        ["2015-12-28T09:22:00+0530", 1392.95, 1393, 1392, 1392.95, 180],
        ["2015-12-28T09:23:00+0530", 1392.95, 1393, 1392, 1392.15, 1869]
        ...
        ["2016-01-01T13:22:00+0530", 1386.4, 1388, 1381.05, 1385.1, 788],
        ["2016-01-01T13:23:00+0530", 1385.1, 1389.1, 1383.85, 1385.5, 613],
        ["2016-01-01T13:24:00+0530", 1385.5, 1387, 1385.5, 1385.7, 212],
        ["2016-01-01T13:25:00+0530", 1387, 1387.95, 1385.3, 1387.95, 1208],
        ["2016-01-01T13:26:00+0530", 1387, 1387.55, 1385.6, 1386.25, 716],
        ["2016-01-01T13:27:00+0530", 1386.95, 1389.95, 1386.95, 1389, 727],
        ["2016-01-01T13:28:00+0530", 1389, 1392.95, 1389, 1392.95, 291],
        ["2016-01-01T13:29:00+0530", 1392.95, 1393, 1392, 1392.95, 180],
        ["2016-01-01T13:30:00+0530", 1392.95, 1393, 1392, 1392.15, 1869]
    ]
  }
}
已创建以下类来包装输出,但在反序列化时出错:

<Serializable()>
Public Class JSON_Model_HistoricalData
    Public Property status As String
    Public Property data As Data
End Class

<Serializable()>
Public Class Data
    Public Property candles() As List(Of Candles_Data)
End Class

<Serializable()>
Public Class Candles_Data
    Public Property candles() As String
End Class

公共类JSON_模型_历史数据
公共属性状态为字符串
公共财产数据作为数据
末级
公共类数据
公共属性烛光()作为列表(烛光数据)
末级
公共类数据
公共属性()作为字符串
末级
错误消息是:


有人能帮我找出哪里出了问题吗?

用更改过的类
蜡烛\u Data
保存一个对象数组试试

<Serializable()>
Public Class Candles_Data
    Public Property candles() As Object
End Class

公共类数据
公共属性()作为对象
末级
由于JSON中的数组包含字符串和数字

请尝试此操作
C#

vb

Public Class Rootobject
    Public Property status As String
    Public Property data As Data
End Class

Public Class Data
    Public Property candles()() As Object
End Class

这门课应该是:

Public Class Data
    <JsonProperty("candles")>
    Public Property Candles As Object()()
End Class

Public Class JSON_Model_HistoricalData
    <JsonProperty("status")>
    Public Property Status As String

    <JsonProperty("data")>
    Public Property Data As Data
End Class
公共类数据
作为对象()的公共属性()
末级
公共类JSON_模型_历史数据
公共属性状态为字符串
公共财产数据作为数据
末级

这里有两个工具,你可以考虑将来使用以简化你的任务:

  • -JSON验证程序
  • -用于为所有.NET语言生成JSON类

您好,运气不好,按您的建议更改后会抛出相同的错误消息,
Public Class Data
    <JsonProperty("candles")>
    Public Property Candles As Object()()
End Class

Public Class JSON_Model_HistoricalData
    <JsonProperty("status")>
    Public Property Status As String

    <JsonProperty("data")>
    Public Property Data As Data
End Class