JsonParser解析json字符串双引号问题

** 今天在项目 中使用到了JsonParser解析json字符串为JsonArray或者JsonObject,解析之后使用 如下代码获取到的字符串多了一层 “”(双引号) **

JSON字符串格式如下

{“key”:"value","key1":"value1"}
JsonObject jarray = jsonParser.prase( json ).getAsJsonObject();
 for (String k : Jarray.keySet()) {
      System.out.println(Jarray.get(k).toString()); //输出的字符串是 “value”   "value1" (是带有 “” 的)
 }

** 如果将这样的字符串直接设值在 yaml 文件中,那么设置完成后的 yaml文件如下: **

---
key: "\"value\""
key1: "\"value1\""

** 调试查看之后发现 Jarray.get(k) 获取得到的是 JsonPrimitive对象(会在字符串外面再加一对引号) **

** 弄清楚原因之后我们只要在 Jarray.get(k) 之后再对对象取值就可以了 **

JsonObject jarray = jsonParser.prase( json ).getAsJsonObject();
 for (String k : Jarray.keySet()) {
      System.out.println(Jarray.get(k).getAsString()); //输出的字符串是  value   value1 (是不带有 “” 的)
 }

参考链接


JsonParser解析json字符串双引号问题