Java--JSON嵌套JSON中帶'\'字符的解決方式

最近在開發中遇到了這麼一個問題,我在構造一個Json字符串的時候,由於這個JSON字符串的一個屬性本身也是一個JSON字符串,所以在轉換成字符串的時候這個子JSON字符串中就帶了'\'反斜槓字符。導致後面傳參發送到接收方識別不了。由於我不想通過處理JSON字符串(直接把\替換成空串),而是直接傳進來就是正常的。經過一系列的嘗試,終於將其解決。

一、問題復現:

        //子json串
		JSONObject childJsonObj = new JSONObject();
		childJsonObj.put("name", "ICBC");
		childJsonObj.put("position", "BJ");
		
		
		JSONObject jsonObj = new JSONObject();
		jsonObj.put("name", "stalin");
		jsonObj.put("old", "26");
		jsonObj.put("sex", "man");
		jsonObj.put("work", childJsonObj.toJSONString());
		
		System.out.println(jsonObj.toJSONString());

結果如下: 

圖片中顯示子JSON串中帶了反斜槓'\'

二、解決方式:

我們應該直接把子JSON的對象傳過去,而不是JSON字符串,否則會導致外層的JSON在轉字符串時對子字符串進行二次轉換,多加了反斜槓'\'。修改代碼如下:

        //子json串
		JSONObject childJsonObj = new JSONObject();
		childJsonObj.put("name", "ICBC");
		childJsonObj.put("position", "BJ");
		
		
		JSONObject jsonObj = new JSONObject();
		jsonObj.put("name", "stalin");
		jsonObj.put("old", "26");
		jsonObj.put("sex", "man");
		jsonObj.put("work", childJsonObj);
		
		System.out.println(jsonObj.toJSONString());

結果如下:

 

 

 

喜歡的朋友點點關注哦~~ 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章