一.你需要准备
- jdk1.7
- fastjson-1.1.33
二.我们要做什么事
1.处理前报文
{"1":"1","2":"2","3":"3","4":"4","smap":{"5":5,"6":"6","7":"7"}}
2.处理后报文
{"1":"1","2":"2","3":"3","4":"4","smap":"{\"5\":5,\"6\":\"6\",\"7\":\"7\"}"}
我们对比发现,在json报文中,我们给smap对象中的双引号都加了转义字符"\"
三.相关代码
1.处理前报文代码
import com.alibaba.fastjson.JSONObject;
import java.util.LinkedHashMap;
/**
* @author: Milogenius
* @create: 2019-08-02 16:57
* @description:
**/
public class Test {
public static void main(String[] args) {
LinkedHashMap<String, Object> fmap = new LinkedHashMap<>();
fmap.put("1", "1");
fmap.put("2", "2");
fmap.put("3", "3");
fmap.put("4", "4");
LinkedHashMap<String, Object> smap = new LinkedHashMap<>();
smap.put("5", 5);
smap.put("6","6");
smap.put("7","7");
fmap.put("smap", smap);
System.out.println(JSONObject.toJSONString(fmap));
}
}
2.处理后报文代码
import com.alibaba.fastjson.JSONObject; import java.util.LinkedHashMap; /** * @author: Milogenius * @create: 2019-08-02 16:57 * @description: **/ public class Test { public static void main(String[] args) { LinkedHashMap<String, Object> fmap = new LinkedHashMap<>(); fmap.put("1", "1"); fmap.put("2", "2"); fmap.put("3", "3"); fmap.put("4", "4"); LinkedHashMap<String, Object> smap = new LinkedHashMap<>(); smap.put("5", 5); smap.put("6","6"); smap.put("7","7"); fmap.put("smap", JSONObject.toJSONString(smap)); System.out.println(JSONObject.toJSONString(fmap)); } }
对比两段代码,我们发现只有 fmap.put("smap", JSONObject.toJSONString(smap))
这句代码不一样,的确,我们也是通过这句代码实现了上面的加转义字符的效果;
四.总结
我们通过使用fastjson工具包,实现了给json报文中特定对象加转义字符的要求,当然也有其他的实现思路,大家可以探索;