从 JSON 对象中获取第一个键和值
Get first key and value from JSON object
我已经 JSON 从我的 Web 服务器返回以下形式:
{"success":false,"errors":{"username":["Invalid username","Username too short"],"password":["Invalid password"]}}
我如何在 Java 中解析 JSON 以获得 第一个键 和该键的 第一个值?所以在上面的例子中,输出应该是:
username
Invalid username
我当前的代码如下所示:
String json = new String(((TypedByteArray) retrofitError.getResponse().getBody()).getBytes());
try {
JSONObject obj = new JSONObject(json);
String success = obj.getString("success");
JSONObject errors = obj.getJSONObject("errors");
// TODO
} catch (JSONException e) {
e.printStackTrace();
}
也许这样的事情可以帮助你,我不确定我是否理解你的问题:
for (final Iterator<String> iter = errors.keys(); iter.hasNext();) {
final String key = iter.next();
try {
final Object value = errors.get(key);
final JSONArray error = (JSONArray) value;
System.out.println(key);
System.out.println(error.get(0).toString());
} catch (final JSONException e) {
// Something went wrong!
}
}
我已经 JSON 从我的 Web 服务器返回以下形式:
{"success":false,"errors":{"username":["Invalid username","Username too short"],"password":["Invalid password"]}}
我如何在 Java 中解析 JSON 以获得 第一个键 和该键的 第一个值?所以在上面的例子中,输出应该是:
username
Invalid username
我当前的代码如下所示:
String json = new String(((TypedByteArray) retrofitError.getResponse().getBody()).getBytes());
try {
JSONObject obj = new JSONObject(json);
String success = obj.getString("success");
JSONObject errors = obj.getJSONObject("errors");
// TODO
} catch (JSONException e) {
e.printStackTrace();
}
也许这样的事情可以帮助你,我不确定我是否理解你的问题:
for (final Iterator<String> iter = errors.keys(); iter.hasNext();) {
final String key = iter.next();
try {
final Object value = errors.get(key);
final JSONArray error = (JSONArray) value;
System.out.println(key);
System.out.println(error.get(0).toString());
} catch (final JSONException e) {
// Something went wrong!
}
}