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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中将map转成json时,如何将map中的整型数字在转成json后,变成字符串,而不是整型。相关的知识,希望对你有一定的参考价值。

比如数字1在转成json后为"1"。
例如:{"sum":"123"} 而不是{"sum":123}

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

我知道的两种方式:

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

    字符串替换,用正则添加双引号:

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做遍历替换把。

参考技术A 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();


如何把map转成json

  把map转成json的步骤:
  1、需要一些jar包:json-lib-2.4-jdk15.jar、ezmorph-1.0.6.jar、commons-logging.jar、commons-lang.jar、commons-collections.jar、commons-beanutils.jar。
  2、把Map转换成json, 要使用jsonObject对象:
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("userId", 1001);
  map.put("userName", "张三");
  map.put("userSex", "男");
  JSONObject jsonObject = JSONObject.fromObject(map);
  System.out.println(jsonObject);
参考技术A 代码:
String s = "\"a1\":\"v1\",\"a2\":\"v2\"";
Object obj = JSONObject.toBean(JSONObject.fromObject(s),HashMap.class);
System.out.println(((HashMap<String, String>) obj).get("a1"));本回答被提问者和网友采纳

以上是关于java中将map转成json时,如何将map中的整型数字在转成json后,变成字符串,而不是整型。的主要内容,如果未能解决你的问题,请参考以下文章

如何把map转成json

如何把map转成json字符串

js解析后台map转成的json方法

java中怎么list 转成 map?

如何将一个map 转换成json数据

map中键为对象,用js将map中的键取出时,如何取出对象,以及它的属性