对于特定的字符串,比如json格式的字符串,虽然是map格式的,但是scala中没有专门的方法直接转为Map格式,需要我们写代码来处理下:
def concatParamsArrayToArray(HiveRes: String, json: JsonHelper): Array[Map[String,String]] = {
val node = json.loadJsonNode(HiveRes).get("param")
if (node != null && node.fields != null) {
val p: java.util.Iterator[java.util.Map.Entry[String, JsonNode]] = node.fields
val list = new ArrayBuffer[Map[String,String]]()
while (p.hasNext) {
val entry = p.next
val key = entry.getKey
val value = entry.getValue.textValue()
list+=Map("key"->key,"value"->value)
}
list.toArray
}
else null
}
比如对于下面的这种格式:
"parameter": {
"aa": "global",
"bb": "global",
"cc": "true",
"dd": "default"
}
scala不能直接转为“key”:“value”的map格式。用上面的方法可以转化为:
[{“key”:“aa”,“value”:“global”},{“key”:“bb”,“value”:“global”},{“key”:“cc”,“value”:“true”},{“key”:“dd”,“value”:“default”}]
版权声明:本文为nfzhlk原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。