Java:如何解析JSON字符串参数为字符串和数组?
问题描述:
我有像下面这样的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
答
比方说你有一个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");
}
希望这有助于你。
答
你可能想看看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
你可以尝试一个json解析器,例如[jackson](https://github.com/FasterXML/jackson/blob/master/MANUAL.md)或者gson。然后从那里继续 – yaitloutou