2017-01-23 2 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

Смежные вопросы