3 回答

TA貢獻1790條經驗 獲得超9個贊
試試下面:
JSONObject obj = new JSONObject();
obj.put("id", -12);
obj.put("title", "titlevalue");
obj.put("body", "bodyvalue");
JSONArray arr = new JSONArray();
arr.put(obj);
解釋:正如 Dave 解釋的那樣,將字符串放在用“[”和“]”包圍的字符串中,您引入了轉義字符。相反,只需將創建的對象放入數組中。更好的方法是使用 GSON 或 JACKSON 進行解析,您可以在互聯網上輕松找到教程。

TA貢獻1853條經驗 獲得超9個贊
我認為您的問題可能出在以下方面:
JSONArray arr = new JSONArray("[" + obj + "]");
我懷疑此時obj
已轉換為字符串,而您JSONArray
只包含一個字符串。也就是說,"[" + obj + "]"
具有調用obj.toString()
和創建傳遞給構造函數的單個字符串的效果。
這意味著當您將其寫出時,單個字符串會轉義嵌入的引號。該System.out.println(arr.toString());
實際上是誤導。您沒有按預期設置對象。
解決方案可能很簡單:
JSONArray arr = new JSONArray();
arr.put(obj);

TA貢獻1840條經驗 獲得超5個贊
我建議您使用 GSON 庫,它非常容易將任何 java 對象轉換為 JSON 字符串。
Gson gson = new Gson()
String json = gson.toJson(myObject);
添加回答
舉報