解析包含数字和字符串的 JSON 嵌套数组
Parse a JSON nested array with numbers and strings
我从网络服务器收到以下 JSON 响应:
[
[
1499040000000,
"0.01634790",
"0.80000000",
"0.01575800",
"0.01577100",
"148976.11427815",
1499644799999,
"2434.19055334",
308,
"1756.87402397",
"28.46694368",
"17928899.62484339"
]
]
如何使用 System.Text.Json
将其解析为数组?
我已经尝试过 String.Split()
和 String.Replace()
(因为括号和引号出现在元素中)但这是一种“丑陋”的方法。
如有任何建议,我们将不胜感激。
那 JSON 表示数组的数组(好吧,这里是单个嵌套数组)。
您可以将其解析为 List(Of Double())
或 List(Of List(Of Double))
.
混合数据类型(字符串和数字),可以转换为所有数字,设置一个JsonSerializerOptions that specifies the NumberHandling来使用,这里设置为AllowReadingFromString
.
Dim options = New JsonSerializerOptions() With {
.NumberHandling = JsonNumberHandling.AllowReadingFromString
}
Dim listOfDouble = JsonSerializer.Deserialize(Of List(Of Double()))(json, options)
您还可以反序列化为 List(Of Object())
并稍后执行转换,或者只读取值作为字符串,在读取列表的元素时调用 .ToString()
。
Dim listOfObjects = JsonSerializer.Deserialize(Of List(Of Object()))(json)
我从网络服务器收到以下 JSON 响应:
[
[
1499040000000,
"0.01634790",
"0.80000000",
"0.01575800",
"0.01577100",
"148976.11427815",
1499644799999,
"2434.19055334",
308,
"1756.87402397",
"28.46694368",
"17928899.62484339"
]
]
如何使用 System.Text.Json
将其解析为数组?
我已经尝试过 String.Split()
和 String.Replace()
(因为括号和引号出现在元素中)但这是一种“丑陋”的方法。
如有任何建议,我们将不胜感激。
那 JSON 表示数组的数组(好吧,这里是单个嵌套数组)。
您可以将其解析为 List(Of Double())
或 List(Of List(Of Double))
.
混合数据类型(字符串和数字),可以转换为所有数字,设置一个JsonSerializerOptions that specifies the NumberHandling来使用,这里设置为AllowReadingFromString
.
Dim options = New JsonSerializerOptions() With {
.NumberHandling = JsonNumberHandling.AllowReadingFromString
}
Dim listOfDouble = JsonSerializer.Deserialize(Of List(Of Double()))(json, options)
您还可以反序列化为 List(Of Object())
并稍后执行转换,或者只读取值作为字符串,在读取列表的元素时调用 .ToString()
。
Dim listOfObjects = JsonSerializer.Deserialize(Of List(Of Object()))(json)