Простой метод преобразования массивов - это анализ JSON с JArray , итерация внутренних массивов и создание нового объекта класса, преобразование значений массива в требуемый тип.
Создайте объект, который может представлять значения массива:
<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
Затем выполните синтаксический анализ JSON и сгенерируйте новые объекты класса из каждого внутреннего JArray
объекта:
Поскольку первое значение в массиве представляет Unix DateTime, выраженное в миллисекундах, мы можем использовать метод DateTimeOffset.FromUnixTimeMilliseconds()
для его преобразования.
Dim numbers As New List(Of NumbersItem)()
Dim jsonArrays = JArray.Parse(json)
For Each array As JArray In jsonArrays.Children()
numbers.Add(New NumbersItem(
DateTimeOffset.FromUnixTimeMilliseconds(CType(array.First, Long)),
CType(array.Last, Long)))
Next
Теперь вы можете как обычно проверять каждый объект класса NumbersItem
в списке.
Свойство DetectionTime
определяется как DateTimeOffset
, потому что Unix время выражено в UT C координатах. Вы можете использовать методы DateTimeOffset
, чтобы определить локальный DateTime (DateTimeOffset.ToLocalTime
) или выполнить другие преобразования.