java中将map转成json时,如何将map中的整型数字在转成json后,变成字符串,而不是整型。 20

比如数字1在转成json后为"1"。例如:{"sum":"123"}而不是{"sum":123}... 比如数字1在转成json后为"1"。
例如:{"sum":"123"} 而不是{"sum":123}
展开
 我来答
miniappS3G7aic4kvdvs
2016-07-07 · 超过22用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:21.9万
展开全部

好像没有什么特别的办法,可能是我才疏学浅,

我知道的两种方式:

  1. map是键值对存在,那么类型都是固定的,我们可以再申请个map<String ,String>粗悄遍历替岩族渣换原来的map再转换成json字符串

  2. 字符穗或串替换,用正则添加双引号:

public void testJson(){
    Map<String,Integer> map = new HashMap<String,Integer>();
    map.put("aaa", 111);
    String json = JSON.toJSONString(map);   
    String json1 = json.replaceAll(":", ":\"");
    json1 = json1.replaceAll("}", "\"}");
    System.out.println(json);
    System.out.println(json1);
}
追问
你的代码不太对,不应该直接把所有的替换了
追答
map中都是键值对,每个数据类型都相同,如果要把里面的Integer都替换成String两种方法应该是可以的,如果你要把其中某些数值做转换那就新建map做遍历替换把。
月亮是我老婆
2020-08-07
知道答主
回答量:3
采纳率:0%
帮助的人:809
展开全部
public static String map2Json(Map map) {
if (map == null) {
return "{}";
} else {
Set keys = map.keySet();
StringBuffer jsonBuffer = new StringBuffer();
jsonBuffer.append("{");
Iterator it = keys.iterator();

while (true) {
while (it.hasNext()) {
Object key = it.next();
Object value = map.get(key);
if (value instanceof List) {
List jsonMap2 = (List) value;
jsonBuffer.append("\"" + key + "\":[");
Iterator iterator = jsonMap2.iterator();

while (iterator.hasNext()) {
Map jsonMap1 = (Map) iterator.next();
jsonBuffer.append(map2Json(jsonMap1));
if (iterator.hasNext()) {
jsonBuffer.append(",");
}
}

jsonBuffer.append("]");
if (it.hasNext()) {
jsonBuffer.append(",");
}
} else if (value instanceof Map) {
jsonBuffer.append("\"" + key + "\":");
Map jsonMap = (Map) value;
jsonBuffer.append(map2Json(jsonMap));
if (it.hasNext()) {
jsonBuffer.append(",");
}
} else {
jsonBuffer.append("\"" + key + "\":\""
+ (null != value && !"皮判null".equals(value) ? string2Json(String.valueOf(value)) : "燃陆改悉物")
+ "\"");
if (it.hasNext()) {
jsonBuffer.append(",");
}
}
}

jsonBuffer.append("}");
return jsonBuffer.toString();
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式