2017-01-23 127 views
-2

我有像下面這樣的JSON數據傳遞給請求作爲string參數。Java:如何解析JSON字符串參數爲字符串和數組?

[{ 
"KK_ID":"22","MONTH":"Jan", 
"MY_UNIT": 
[{"dataid":"7hENRFVhjmbKmMFX","unit":"10.0"},{"dataid":"G7cuqwxmvx8mFUZN","unit":"20.0"}] 
}] 

如何可以解析它來獲得:

KK_ID: 22 
MONTH: JAN 

to 2D array: 
[0][0] dataid:7hENRFVhjmbKmMFX [0][1] unit:10.0 
[1][0] dataid:G7cuqwxmvx8mFUZN [1][1] unit:20.0 
+0

你可以嘗試一個json解析器,例如[jackson](https://github.com/FasterXML/jackson/blob/master/MANUAL.md)或者gson。然後從那裏繼續 – yaitloutou

回答

0

比方說你有一個JSON數組(jsonarray):

[{ 
"KK_ID":"22","MONTH":"Jan", 
"MY_UNIT": 
[{"dataid":"7hENRFVhjmbKmMFX","unit":"10.0"},{"dataid":"G7cuqwxmvx8mFUZN","unit":"20.0"}] 
}] 

代碼解析 -

JSONObject jsonObject = jsonArray.getJSONObject(0); 
String KK_ID = jsonObject.getString("KK_ID"); 
String MONTH = jsonObject.getString("MONTH"); 

JSONArray innerJsonArray = jsonObject.getJSONArray("MY_UNIT"); 

String[][] strAry = new String[innerJsonArray.length()][2]; 

for (int i = 0; i < innerJsonArray.length(); i++) { 
    JSONObject innerJsonobject = innerJsonArray.getJSONObject(i); 
    strAry[i][0] = innerJsonobject.getString("dataid"); 
    strAry[i][1] = innerJsonobject.getString("unit"); 
} 

希望這有助於你。

0

你可能想看看GSON

Gson gson = new Gson(); 
data = gson.fromJson(mystring, List<MyData>.class); 

class MyData { 
    int KK_ID; 
    String MONTH; 
    List<Map<String, String>> MY_UNIT; 
} 
+0

不能得到它的工作.. – user1353563