gson包的getAsString()与toString()问题

简烦 2018-08-06 03:29:02
问题: 就是我通过接口获取传递过来的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());



}
}

...全文
672 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
简烦 2018-08-06
  • 打赏
  • 举报
回复
用getAsString()就是都不带双引号了

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧