2017-03-13 104 views
-1

我有一個JSON:異常而解析JSON

String jsonString = "{"Tech":"{id :[""],techInside :["Java","C++"]}","id1":"","state":""}"; 

所以我需要techInside的價值。我如何訪問>我曾嘗試:

JSONObject obj = new JSONObject(jsonString); 
string techInside = obj.getJSONObject("Tech").getJSONArray("techInside"); 

但它給了我一個例外:org.json.JSONException: Expected a ',' or '}' at 17.
嘗試過很多其他的方法,但花了很多時間在上面。需要一些建議,請。

注:我使用的string.So轉義字符,請忽略在jsonString

+0

你看這個? http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java?rq=1 – Jay266

+3

請提供[mcve]。因爲它是你的代碼甚至不可編譯,例如'string techInside'可能應該是'String techInside',但是除此之外,您希望如何將'getJSONArray()'的返回值轉換爲'String'? – Thomas

+0

你的JSON無效,'getJSONArray()'不返回一個「字符串」(或者甚至是一個String),它返回一個'JSONArray'。 – azurefrog

回答

1

您的JSON無效。對象周圍不應有""{})。

嘗試用這個JSON字符串:

String jsonString = "{\"Tech\":{\"id\":[\"\"], \"techInside\":[\"Java\", \"C++\"]}, \"id1\":\"\", \"state\":\"\"}" 

還是沒有逃脫

{"Tech":{"id":[""], "techInside":["Java", "C++"]}, "id1":"", "state":""} 
+0

哦。感謝那。我只是盲目地使用一些在線工具來驗證JSON。它給了我一個綠色,所以沒有再看一遍。讓我嘗試重新格式化JSON。謝謝。 – user7637864

-1

我覺得JSON的你正在尋找一種是

逃逸字符{「技術」:{ 「id」:「」,「techInside」:[「Java」,「C++」]},「id1」:「」,「state」:「」}

不確定,您的要求是什麼。