一殊鞭、背景
需求:極光推送的數(shù)據(jù)画侣,解析Json數(shù)據(jù)并做彈窗展示。
問(wèn)題:原本后臺(tái)傳給極光的是正常的Json數(shù)據(jù)姓惑,然后經(jīng)過(guò)極光處理后褐奴,整個(gè)Json數(shù)據(jù)都帶有反斜杠。
{"linkurl":null,"type":10,"keyword":"[{\"name\":\"\\u606d\\u8d3a\\u65b0\\u6625\",\"value\":\"5888\",\"unit\":\"\\u5143\",\"catid\":\"3\"},{\"name\":\"\\u5409\\u7965\\u5982\\u610f\",\"value\":\"6.66\",\"unit\":\"%\",\"catid\":\"1\"},{\"name\":\"\\u5409\\u661f\\u9ad8\\u7167\",\"value\":\"58\",\"unit\":\"\\u5143\",\"catid\":\"3\"},{\"name\":\"\\u5409\\u7965\\u5982\\u610f\",\"value\":\"4.8\",\"unit\":\"%\",\"catid\":\"1\"},{\"name\":\"\\u5409\\u661f\\u9ad8\\u7167\",\"value\":\"12\",\"unit\":\"\\u5143\",\"catid\":\"3\"}]"}
keyword中好多反斜杠“\”并且還有Unicode的\\u606d\\u8d3a\\u65b0\\u6625\
二于毙、接下來(lái)
只要Json解析必然拋出異常JsonSyntaxException敦冬,那么有問(wèn)題自然要解決;
看到這么多反斜杠唯沮,當(dāng)然要想辦法清掉脖旱,首先,我們拿到keyword介蛉,
JSONObject extraJson = new JSONObject(extra);
String keyWord = extraJson.optString("keyword");
然后萌庆,replace("\\\"", "\"")將 \" 換成 " ,\\u還要再替換掉币旧,replace("\\\\u", "\\u")践险,經(jīng)過(guò)兩輪的替換,終于還原成正常的Json了
最后還要將keyword拼接成Json:"{\"keyword\":" + keyWord + "}"