问题: 就是我通过接口获取传递过来的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());
}
}
出现的一个很奇怪的现象,就是同是字符串类型的数据,若是纯数字,就是 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());
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货