scala中字符串转Map

对于特定的字符串,比如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版权协议,转载请附上原文出处链接和本声明。