【发布时间】:2018-01-01 20:15:51
【问题描述】:
我需要将此 JSON 字符串发布到服务器:
{
"content-spec":"urn:spec://bosch.com/cindy/measurement-message#v2",
"device":{
"deviceID":"1de09010-ec04-11e7-bd8a-525400ed1935"
},
"measurements":[
{
"ts":"2017-07-25T15:40:00.000+02:00",
"series":{
"$_time":[
0
],
"BasY":[
1.5
]
}
}
]
}
我目前有以下结果:
{
"contentSpec": "urn:spec://bosch.com/cindy/measurement-message#v2",
"device": {
"deviceID": "1de09010-ec04-11e7-bd8a-525400ed1935"
},
"measurements": {
"ts": "2018-01-01T21:11:42.0519229+01:00",
"series": {
"$_time": 10212,
"value": 1.4
}
}
}
请注意,应该是数组的几个属性(在 JSON 中用 [] 标记)是简单对象。我怎样才能让这些变成数组?
这是我的代码:
Public Function createJSONString(jContent As Dictionary(Of String, String)) As String
Dim tmpDate As DateTime = New DateTime(Now.Ticks, DateTimeKind.Utc.Local)
Dim timestamp As String = tmpDate.ToString("o") '2009-06-15T13:45:30.0000000Z
Dim makeJSON As JSONHandling = New JSONHandling
makeJSON.contentSpec = "urn:spec://bosch.com/cindy/measurement-message#v2"
makeJSON.device.deviceID = jContent("deviceID")
makeJSON.measurements.ts = timestamp
makeJSON.measurements.series.mtime = "10212"
makeJSON.measurements.series.value = 1.4
Return JsonConvert.SerializeObject(makeJSON).Replace("mtime", "$_time")
'"{""content-spec"":""urn:spec://bosch.com/cindy/measurement-message#v2"", ""device"":{ ""deviceID"":""" & jContent.Item(0) & """ }, ""measurements"":[{""ts"":""" & timestamp & """, ""series"":{""$_time"":[0], ""PickY"":[" & jContent.Item(3) & "]}}]}"
End Function
我的模型如下:
Public Class JSONHandling
Public contentSpec As String
Public device As JSONHandlingDevice = New JSONHandlingDevice
Public measurements As JSONHandlingMeasurements = New JSONHandlingMeasurements
End Class
Public Class JSONHandlingMeasurements
Public ts As String
Public series As JSONHandlingSeries = New JSONHandlingSeries
End Class
Public Class JSONHandlingSeries
Public mtime As Integer
Public value As Double
End Class
更新: 当我想要一个以上的测量值时,我必须做什么? 像这样:
{
"content-spec": "urn:spec://bosch.com/cindy/measurement-message#v2",
"device": {
"deviceID": "1de09010-ec04-11e7-bd8a-525400ed1935"
},
"measurements": [
{
"ts": "2018-01-01T21:24:46.8354066+01:00",
"series": {
"$_time": [
0
],
"PickY": [
37.4
]
}
},
{
"ts": "2018-01-01T21:24:46.8354066+01:00",
"series": {
"$_time": [
0
],
"PickZ": [
92
]
}
},
{
"ts": "2018-01-01T21:24:46.8354066+01:00",
"series": {
"$_time": [
0
],
"PickC": [
0
]
}
}
]
}
【问题讨论】:
-
在
JSONHandling类中使用测量集合。Public Property measurements As List(Of JSONHandlingMeasurements)