问题: 就是我通过接口获取传递过来的JsonArray,取元素的的时候,再最后转字符串的时候,用toString(),没有用getAsString()。
出现的一个很奇怪的现象,就是同是字符串类型的数据,若是纯数字,就是 1234 这样的输出,但是包含字母的话,打印的就是 “s1124”这样的形式,会多带双引号。public JsonArray getArrayParm(String key){
if (!containsKey(key)) {
return null;
}
try {
return new JsonParser().parse(get(key).toString()).getAsJsonArray();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}JsonArray jarray = requestDTO.getArrayParm("cancle_data");String user_id = jarray.get(i).getAsJsonObject().get("user_id").toString();
System.out.println("user_id===="+user_id);上面这段打印的 纯数字不带引号的传递的参数:{
   "cancle_key":"user_id",
    "cancle_data":[
      {"user_id":"123451"},
      {"user_id":"123452"},
      {"user_id":"123453"}
    ]
}但是我自己模拟的test类,纯数字的也会带双引号package com.colde.test;import com.google.gson.JsonParser;public class TestObjectToString { public static void main(String[] args) {

String ss = "[{\"user_id\":\"123451\"},{\"user_id\":\"123452\"},{\"user_id\":\"123453\"}]"; System.out.println(new JsonParser().parse(ss).getAsJsonArray().get(0).getAsJsonObject().get("user_id").toString());



}
}