最近调用第三方接口,传值的时候有这样的需求,key不能带双引号,value带有双引号的JSON数据传参 找了这个方法可以使用
JSONObject.fromObject(map)方法需要导入的依赖
import net.sf.json.JSONObject;
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.3</version>
<classifier>jdk15</classifier><!-- 指定jdk版本 -->
</dependency>
案例演示:
//数据组装
Map<String, Object> map = new HashMap<>();
map.put("1","1111");
map.put("2","2222");
map.put("3","3333");
String json = JSONObject.fromObject(map).toString();
json = json.replaceAll("\"(\\w+)\"(\\s*:\\s*)","$1$2");
System.out.println(json.toString());//
打印输出:
{1:"1111",2:"2222",3:"3333"}
在调用第三方接口时,遇到key不能带双引号,但value需为带双引号的JSON数据的情况。通过使用net.sf.json.JSONObject的fromObject(map)方法将Map转换为JSON字符串,然后利用replaceAll方法处理掉多余的引号。示例中展示了如何将数据从Map转换为符合要求的JSON格式字符串。
1964

被折叠的 条评论
为什么被折叠?



