** 今天在项目 中使用到了JsonParser解析json字符串为JsonArray或者JsonObject,解析之后使用 如下代码获取到的字符串多了一层 “”(双引号) **
JSON字符串格式如下
1 |
{“key”:"value","key1":"value1"} |
1 2 3 4 |
JsonObject jarray = jsonParser.prase( json ).getAsJsonObject(); for (String k : Jarray.keySet()) { System.out.println(Jarray.get(k).toString()); //输出的字符串是 “value” "value1" (是带有 “” 的) } |
** 如果将这样的字符串直接设值在 yaml 文件中,那么设置完成后的 yaml文件如下: **
1 2 3 |
--- key: "\"value\"" key1: "\"value1\"" |
** 调试查看之后发现 Jarray.get(k) 获取得到的是 JsonPrimitive对象(会在字符串外面再加一对引号) **
** 弄清楚原因之后我们只要在 Jarray.get(k) 之后再对对象取值就可以了 **
1 2 3 4 |
JsonObject jarray = jsonParser.prase( json ).getAsJsonObject(); for (String k : Jarray.keySet()) { System.out.println(Jarray.get(k).getAsString()); //输出的字符串是 value value1 (是不带有 “” 的) } |