我有如下所示的JSON数据。我使用Python将列表,字典和另一个列表编码为JSON。最终的JSON数据如下所示:
{
"0": [3, 3, 3],
"1": {
"0": [0, 8, 9],
"1": [1, 2, 3, 4, 10, 11],
"2": [4]
},
"2": [1, 1, 1, 1]
}
我的目标是编写某种类型的Scala函数,以允许以下方式提取JSON数据:
"0": [3, 3, 3]
成为List(3,3,3)
{"0":[0,8,9], ...}
成为HashMap[Int,List[Int]]
"2": [1, 1, 1, 1]
成为List(1,1,1,1)
请注意原始Python列表和字典的长度会有所不同,"0", "1", "2"
将始终以此顺序表示列表,字典和列表。
我对Scala很陌生,并且在不使用外部库的情况下如何做到这一点很困难。我正在尝试使用spray-json来实现它,因为我使用的是更新版本的Scala(没有内置的json解析器)。
答案 0 :(得分:0)
对我来说,这看起来不像是有效的JSON,这意味着您可以使用的任何JSON解析器都不起作用。那个结构固定了吗?您可能希望将其转换为有效JSON的内容。
例如。
{
"list" : [ 1,1,1],
"someotherObject" : {
"0" : [1,2,3]
},
"anotherList" : [9,8,7]
}
然后你可以使用Argonaut(例如),并定义一个解码器,它告诉你如何将JSON映射到你指定的对象类型。见http://argonaut.io/doc/codec/