{"filters":
[
[
"Color",
[
[
"Blue",
629,
"t12-15=blue"
],
[
"Green",
279,
"t12-15=green"
]
]
],
[
"Style",
[
[
"Contemporary / Modern",
331,
"t6-11=contemporary+modern"
],
[
"Transitional",
260,
"t6-11=transitional"
],
]
]
]}
这看起来像是一个4维数组,但是当我尝试使用ServiceStack.Text.JsonSerializer对其进行反序列化时,我没有得到预期的结果。
看起来值“颜色”和“样式”本身不在数组中。这是什么样的Json结构?
答案 0 :(得分:1)
对我而言,它看起来像一个包含深度为4级的数组数组的对象,因此它是一个对象,其中一个字段为4D array。如果你想获得4D数组,你需要从返回的json对象中获取filters
字段
答案 1 :(得分:1)
它确实是一个包含在对象中的数组数组数组。这太可怕了,但我不明白为什么JsonSerializer会呛到它。
答案 2 :(得分:1)
什么样的结构?不规则,真的。包含一个字段的对象,该字段包含一个数组,该数组包含第一个项目是字符串的数组,第二个项目是一个包含两个项目的数组,这两个项目是字符串,数字和字符串项目的数组.... phew!
这根本没问题!
答案 3 :(得分:0)
当你要求它使用数组代替对象来表示地图时,看起来大概就像杰克逊可能会产生的那样。
答案 4 :(得分:0)
样式和颜色只是它们所在阵列的第一个索引。这几乎肯定不是预期的。如果Style应该是下一个Array的标签(对象)而不是它的兄弟,不是吗?显而易见的后续问题是谁/什么产生这个JSON,以及谁正在消耗它......正如bmarguiles所问......在这里你的期望是什么,因为JSON在语法上是有效的,如果它没有做你期望什么......你期待什么?
根据您的评论进行修改:
嗯......因为你似乎能够依赖这些都是嵌套数组的事实,并且你正在寻找的标签将成为任何数组的第0个索引,你可以直接进入查找该标签的数组,然后处理第一个索引处的数组,并假设它将包含您期望的数据。这很难看,但看起来它会起作用(只要生成它的服务不会改变)。 C#有一个JSON反序列化器james.newtonking.com/pages/json-net.aspx。你应该使用它。