我有一个通用的JSON,其中所有键和值都是字符串 .
例1:
[
{
"key1": "value1"
},
{
"key1": "value2"
}
]
但是JSON也可以是:例2:
[
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value3",
"key2": "value4"
}
]
我想将JSON转换为Map . 示例1将转换为Map [String,String]
示例2将转换为List [Map [String,String]]
所以基本上我想将JSON转换为Map并使用如下:
Map ( “KEY1”)( “KEY2”)( “KEY3”)
得到最终结果值3 .
请帮忙!!
1 回答
使用
play-json
,您可以使用validate
将Json转换为Map . 验证返回JsResult
,可以是JsSuccess(data,path)
或JsError(errors)
. 模式匹配从中获取 Map .如果没有回退到案例2,检查str是否属于案例1
案例1:对于Map [String,String]
案例2:列表[Map [String,String]]
这里
someValidJsonString
是您要转换为Map的json字符串如果您使用
sbt project
,则将play-json
依赖项添加到项目中 .build.sbt
Scala REPL