轉:
Java 處理json字符串value中多余的雙引號
一、錯誤場景
json字符串的value值中有多余的雙引號
1、直接上錯誤的json字符串
1
|
String errorJsonStr =
"{\"userName\":\"瑞文\"綠色\",\"hero\":\"f放逐之刃\" 盤子\"}"
;
|
二、處理方案
1、第一種 :
1、 將 {" 替換為 {% // % 也可以是其他字符,自己認識就好,但是要注意要處理的字符串中不包含你要換成的這個特殊字符
將 ":" 替換為 %:%
將 ”, 替換為 %, 2、 將多余的 雙引號替換為空字符串
2、第二種(推薦使用此方法):
自己寫個方法將value值中多余的雙引號替換為 中文雙引號,直接上代碼:
public class MainTest { public static void main(String[] test) { String errorJsonStr = "{\"userName\":\"瑞文\"綠色\",\"hero\":\"f放逐之刃\" 盤子\"}"; errorJsonStr = toJsonString(errorJsonStr); System.out.println(errorJsonStr); } // 處理json字符串中value多余的雙引號, 將多余的雙引號替換為中文雙引號 private static String toJsonString(String s) { char[] tempArr = s.toCharArray(); int tempLength = tempArr.length; for (int i = 0; i < tempLength; i++) { if (tempArr[i] == ':' && tempArr[i + 1] == '"') { for (int j = i + 2; j < tempLength; j++) { if (tempArr[j] == '"') { if (tempArr[j + 1] != ',' && tempArr[j + 1] != '}') { tempArr[j] = '”'; // 將value中的 雙引號替換為中文雙引號 } else if (tempArr[j + 1] == ',' || tempArr[j + 1] == '}') { break; } } } } } return new String(tempArr); } }