调用第三方接口接受返回的数据出现转义字符

JSONObject jsonArr = demo.returnPostMehodJson(baseUrl, BODY_JSON);//解密后返回的json

jsonArr的数据为:

{"data":"[{\"id\":\"1\",\"name\":\"\\u4f53\\u80b2\"},{\"id\":\"3\",\"name\":\"\\u519b\\u4e8b\"},{\"id\":\"4\",\"name\":\"\\u641e\\u7b11\"},{\"id\":\"5\",\"name\":\"\\u8d22\\u7ecf\"},{\"id\":\"7\",\"name\":\"\\u79d1\\u6280\"},{\"id\":\"9\",\"name\":\"\\u6c7d\\u8f66\"},{\"id\":\"10\",\"name\":\"\\u97f3\\u4e50\"},{\"id\":\"13\",\"name\":\"\\u5065\\u5eb7\"},{\"id\":\"16\",\"name\":\"\\u5a31\\u4e50\"},{\"id\":\"17\",\"name\":\"\\u5e7f\\u544a\"},{\"id\":\"19\",\"name\":\"\\u8d44\\u8baf\"},{\"id\":\"22\",\"name\":\"\\u7535\\u5f71\"},{\"id\":\"23\",\"name\":\"\\u7535\\u89c6\\u5267\"},{\"id\":\"24\",\"name\":\"\\u7efc\\u827a\"},{\"id\":\"26\",\"name\":\"\\u7f8e\\u98df\"},{\"id\":\"58\",\"name\":\"\\u767e\\u79d1\"},{\"id\":\"59\",\"name\":\"\\u7a8d\\u95e8\"},{\"id\":\"63\",\"name\":\"\\u5386\\u53f2\"},{\"id\":\"68\",\"name\":\"\\u5e7f\\u573a\\u821e\"},{\"id\":\"70\",\"name\":\"\\u4e24\\u6027\"},{\"id\":\"72\",\"name\":\"\\u5065\\u8eab\"},{\"id\":\"79\",\"name\":\"\\u7eaa\\u5f55\\u8bbf\\u8c08\"},{\"id\":\"81\",\"name\":\"\\u6444\\u5f71\"},{\"id\":\"85\",\"name\":\"\\u65f6\\u5c1a\"},{\"id\":\"90\",\"name\":\"\\u6bcd\\u5a74\"},{\"id\":\"93\",\"name\":\"\\u6e38\\u620f\"},{\"id\":\"94\",\"name\":\"\\u60c5\\u611f\"},{\"id\":\"97\",\"name\":\"\\u4e66\\u753b\"},{\"id\":\"98\",\"name\":\"\\u6559\\u80b2\"},{\"id\":\"103\",\"name\":\"\\u804c\\u573a\"},{\"id\":\"104\",\"name\":\"\\u5b97\\u6559\"},{\"id\":\"112\",\"name\":\"\\u6536\\u85cf\"},{\"id\":\"120\",\"name\":\"\\u840c\\u5a03\"},{\"id\":\"121\",\"name\":\"\\u4e8c\\u6b21\\u5143\"},{\"id\":\"122\",\"name\":\"\\u8bfb\\u4e66\"},{\"id\":\"134\",\"name\":\"\\u7f8e\\u5973\"},{\"id\":\"188\",\"name\":\"\\u624b\\u5de5\"},{\"id\":\"191\",\"name\":\"\\u5bb6\\u5c45\"},{\"id\":\"192\",\"name\":\"\\u65c5\\u884c\"},{\"id\":\"194\",\"name\":\"\\u8da3\\u73a9\"},{\"id\":\"196\",\"name\":\"\\u5c11\\u513f\"},{\"id\":\"197\",\"name\":\"\\u661f\\u5ea7\\u547d\\u7406\"},{\"id\":\"199\",\"name\":\"\\u840c\\u5ba0\"},{\"id\":\"209\",\"name\":\"\\u66f2\\u827a\"},{\"id\":\"216\",\"name\":\"\\u4e09\\u519c\"},{\"id\":\"218\",\"name\":\"\\u730e\\u5947\"},{\"id\":\"242\",\"name\":\"\\u52a8\\u6f2b\"},{\"id\":\"869\",\"name\":\"\\u5c0f\\u54c1\"}]","logid":"4110597586","retmsg":"ok","retcode":"200"}

解决方案:

因为只有 data 有转义字符,其他的没有,所以只对data进行去转义字符

先获取 data 数据

1.将JSONObject转换为HashMap

//1.將JSONObject转换为HashMap<String,String>
public static HashMap<String, String> JsonObjectToHashMap(JSONObject jsonObj){
	HashMap<String, String> data = new HashMap<String, String>();  
	Iterator it = jsonObj.keys();
	while(it.hasNext()){
		String key = String.valueOf(it.next().toString());
		String value = (String)jsonObj.get(key).toString();
		data.put(key, value);
	System.out.println(data);
	return data;
2.再调用方法获取data
HashMap<String, String> stringStringHashMap = demo.JsonObjectToHashMap(jsonArr);
String data = stringStringHashMap.get("data");

对data进行去转义字符

//先有这个依赖,调用工具类
import org.apache.commons.lang.StringEscapeUtils;
//进行去转义字符
String s = StringEscapeUtils.unescapeJava(data)
问题:调用第三方接口接受返回的数据出现转义字符JSONObject jsonArr = demo.returnPostMehodJson(baseUrl, BODY_JSON);//解密后返回的jsonjsonArr的数据为:{"data":"[{\"id\":\"1\",\"name\":\"\\u4f53\\u80b2\"},{\"id\":\"3\",\"name\":\"\\u519b\\u4e8b\"},{\"id\":\"4\",\"name\":\"\\u641e\\u7b import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelp...
java 处理json格式数据转义斜杠 1、{“Count”:“3”,“ErrorString”:""} 2、将1的json格式字符串处理为json对象,需要先去掉转义"" result = StringEscapeUtils.unescapeJava(result); JSONObject jsonObject = new JSONObject(result); jsonObject.get("Count"); //得到json属性值
一开始使用 JSONObject.toJSONString() 把json对象转为json字符串,但是在进行kafka进行消费的候,发现接收到的json总是带转义字符,处理起来比较麻烦 于是使用如下方法,先转为Object对象,再转为字符串: JSONObject.toJSON(jsonObject).toString();
我们日常使用的API接口返回值大多数都是Json格式,当Json返回值出现转义字符怎么办 转义字符的Json例子: “{“errcode”:0,“errmsg”:“成功”,“result”:[{“msg”:“success”,“code”:0}]}” 如果我们通过在线去除转义工具的话可以达到我们需要的效果:在线转义工具 这是去除转义后的json {“errcode”:0,“errmsg”:“成功”,“result”:[{“msg”:“success”,“code”:0}]} 但是我们程序后台没办法调用
扫描二维码读取: KGYXKkFufUOoBTdCI+w0VD1pInVkWdVw9HeRDT8LRRhkwVOiRx1QNgi9jjJSl6Lqm4ZC10L75KIrRTyOSDkZBVdn1MdlzfOxb2sTbZF82Sp3srf0phd3sf\/82HcUm0aF6lal6xAuwVwlVEaX9yZmP68ADQ== 其红色字体为转移符, 无法识别
JSon串在被串行化后保存在文件,读取字符串,是不能直接拿来用JSON.parse()解析为JSON  对象的。因为它是一个字符串,不是一个合法的JSON对象格式。例如下面的JSON串保存在文件,读出来不能直接解析: “{\”resourceId\”:\”dfead70e4ec5c11e43514000ced0cdcaf\”,\”properties\”:{\”process_id\”:\”process4\”,\”name\”:\”\”,\”documentation\”:\”\”,\”processformtemplate\”:\”\”}}” 这个串如果出现在代码是没有问题的
import org.apache.commons.lang.StringEscapeUtils; public static void main(String[] args) { CustomerDataDto custo...
Java,使用不同的JSON库可能会导致JSON对象转义字符处理方式不同。下面是两种常见的JSON库的示例: 1. 使用org.json.JSONObject: ```java import org.json.JSONObject; public class Test { public static void main(String[] args) throws Exception { JSONObject json = new JSONObject(); json.put("name", "123"); JSONObject json2 = new JSONObject(); json2.put("name2", "456"); json2.put("json", json.toString()); // 这里会自动加上转义字符 System.out.println(json2); 2. 使用net.sf.json.JSONObject: ```java import net.sf.json.JSONObject; public class Test { public static void main(String[] args) throws Exception { JSONObject json = new JSONObject(); json.put("name", "123"); JSONObject json2 = new JSONObject(); json2.put("name2", "456"); json2.put("json", json); // 以json对象的形式 System.out.println(json2); json2.put("json", json.toString()); System.out.println(json2); 这两个示例展示了在不同的JSON库如何处理转义字符。在org.json.JSONObject,当将JSON对象转换为字符串,会自动添加转义字符。而在net.sf.json.JSONObject,无论是否将JSON对象转换为字符串,都会以JSON对象的形式存储。