Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.net中Json数组的处理_Json_Vb.net - Fatal编程技术网

VB.net中Json数组的处理

VB.net中Json数组的处理,json,vb.net,Json,Vb.net,我从一些监控设备获取数据,这些设备返回我认为是Json(嵌套)数组,但语法不太正确 下面是重新调整的示例。它是一个unixtimemissions数组和一个值 [[1579617389000132]、[1579617399000136]、[1579617409000139]、[1579617419000137]] 这些数字可能多达3000套 我想做的是将它们转储到某种数组的对象中,以便我能够使用它,例如,将unixtimemissions转换为datetime并进行计算 我最后尝试的是: Dim

我从一些监控设备获取数据,这些设备返回我认为是Json(嵌套)数组,但语法不太正确

下面是重新调整的示例。它是一个unixtimemissions数组和一个值

[[1579617389000132]、[1579617399000136]、[1579617409000139]、[1579617419000137]]

这些数字可能多达3000套

我想做的是将它们转储到某种数组的对象中,以便我能够使用它,例如,将unixtimemissions转换为datetime并进行计算

我最后尝试的是:

Dim ListResultsArray As Directory()
ListResultsArray = JsonConvert.DeserializeObject(Of Directory())(emoncmsResponse)
返回的错误是:

无法创建System.IO.Directory类型的实例。类型是接口或抽象类,无法实例化。路径“[0]。id”,第1行,位置7


转换数组的一个简单方法是使用解析JSON,迭代内部数组并生成一个新的类对象,将数组值转换为所需的类型

创建可以表示数组值的对象:

<JsonArray>
Public Class NumbersItem
    Public Sub New(objTime As DateTimeOffset, objValue As Long)
        DetectionTime = objTime
        Value = objValue
    End Sub
    Public ReadOnly Property DetectionTime As DateTimeOffset
    Public ReadOnly Property Value As Long
End Class
现在,您可以像往常一样检查列表中的每个
numberItem
类对象。

检测时间
属性被定义为
日期时间偏移量
,因为Unix时间是以UTC坐标表示的。您可以使用
DateTimeOffset
方法确定本地日期时间(
DateTimeOffset.ToLocalTime
)或执行其他转换

您是否使用NewtonSoft.json.Linq尝试过JObject 只需创建一个JObject数组并解析Json

 Dim object As JObject()
 JObject.parse(object(index))
 Dim object As JObject()
 JObject.parse(object(index))