如何用多个对象解析这个 json
How to parse this json with multiple objects
devs 我被困在解析这种 JSON 我不明白如何获得状态和消息的价值任何帮助将是非常可观的。我得到了 error 的值,但是当我想访问 status 和 message 的值时,它抛出了一个错误
JSON格式:
{
"error": {
"status": 400,
"message": "Wrong number of segments"
}
}
我的解析代码 json :
try {
JSONObject jso = new JSONObject(String.valueOf(response));
//jso.getJSONObject("error").getJSONObject("message");
jso.getJSONObject("error");
jso.getJSONObject("status").toString(200);
Log.d(TAG,"jso1"+jso);
} catch (JSONException e) {
e.printStackTrace();
}
try {
JSONObject jso = new JSONObject(String.valueOf(response));
//jso.getJSONObject("error").getString("message");
jso.getJSONObject("error");
jso.getJSONObject("error").getInt("status"); // if it was string use getString or it was int than use value getInt
Log.d(TAG,"jso1"+jso);
} catch (JSONException e) {
e.printStackTrace();
}
试试这个
try {
JSONObject fullResponse = new SONObject(String.valueOf(response));
JSONObject errorData = fullResponse.getJSONObject("error");
String errorCode = errorData.getObject("status");
String errorMessage = errorData.getString("message");
Log.d(TAG,"Result = "+errorCode +" - "+errorMessage );
} catch (JSONException e) {
e.printStackTrace();
}
JSONParser parser = new JSONParser();
JSONObject jso = (JSONObject) parser.parse(String.valueOf(response));
上面的命令会给你 JSON.
的响应
要获取状态和消息,您需要将错误提取为单独的 JSON对象,然后解析状态和消息
JSONObject errorObj = (JSONObject) jso.get("error");
String message = errorObj.get("message").toString();
int status = Integer.parseInt(errorObj.get("status").toString());
请记住使用层次结构进行解析和检索。因此,如果状态和消息在“错误”中,则将错误提取为 JSON 对象,然后检索子键。作为一个好习惯,检查密钥是否存在:-
if(errorObj.has("")) {
// do something
}
添加工作示例 :-
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
private static void parseJsonTest() {
String json = "{\n" +
" \"error\": {\n" +
" \"status\": 400,\n" +
" \"message\": \"Wrong number of segments\"\n" +
" }\n" +
"}";
try {
JSONParser parser = new JSONParser();
JSONObject jso = (JSONObject) parser.parse(json);
JSONObject errorObj = (JSONObject) jso.get("error");
String message = errorObj.get("message").toString();
int status = Integer.parseInt(errorObj.get("status").toString());
System.out.println(message + " >>>>>>> " + status);
} catch (Exception e) {
}
}
输出:-
Wrong number of segments >>>>>>> 400
将 Json 转换为 java 的最佳方法是使用 Gson 等转换器库
检查下面的 link :
devs 我被困在解析这种 JSON 我不明白如何获得状态和消息的价值任何帮助将是非常可观的。我得到了 error 的值,但是当我想访问 status 和 message 的值时,它抛出了一个错误 JSON格式:
{
"error": {
"status": 400,
"message": "Wrong number of segments"
}
}
我的解析代码 json :
try {
JSONObject jso = new JSONObject(String.valueOf(response));
//jso.getJSONObject("error").getJSONObject("message");
jso.getJSONObject("error");
jso.getJSONObject("status").toString(200);
Log.d(TAG,"jso1"+jso);
} catch (JSONException e) {
e.printStackTrace();
}
try {
JSONObject jso = new JSONObject(String.valueOf(response));
//jso.getJSONObject("error").getString("message");
jso.getJSONObject("error");
jso.getJSONObject("error").getInt("status"); // if it was string use getString or it was int than use value getInt
Log.d(TAG,"jso1"+jso);
} catch (JSONException e) {
e.printStackTrace();
}
试试这个
try {
JSONObject fullResponse = new SONObject(String.valueOf(response));
JSONObject errorData = fullResponse.getJSONObject("error");
String errorCode = errorData.getObject("status");
String errorMessage = errorData.getString("message");
Log.d(TAG,"Result = "+errorCode +" - "+errorMessage );
} catch (JSONException e) {
e.printStackTrace();
}
JSONParser parser = new JSONParser();
JSONObject jso = (JSONObject) parser.parse(String.valueOf(response));
上面的命令会给你 JSON.
的响应要获取状态和消息,您需要将错误提取为单独的 JSON对象,然后解析状态和消息
JSONObject errorObj = (JSONObject) jso.get("error");
String message = errorObj.get("message").toString();
int status = Integer.parseInt(errorObj.get("status").toString());
请记住使用层次结构进行解析和检索。因此,如果状态和消息在“错误”中,则将错误提取为 JSON 对象,然后检索子键。作为一个好习惯,检查密钥是否存在:-
if(errorObj.has("")) {
// do something
}
添加工作示例 :-
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
private static void parseJsonTest() {
String json = "{\n" +
" \"error\": {\n" +
" \"status\": 400,\n" +
" \"message\": \"Wrong number of segments\"\n" +
" }\n" +
"}";
try {
JSONParser parser = new JSONParser();
JSONObject jso = (JSONObject) parser.parse(json);
JSONObject errorObj = (JSONObject) jso.get("error");
String message = errorObj.get("message").toString();
int status = Integer.parseInt(errorObj.get("status").toString());
System.out.println(message + " >>>>>>> " + status);
} catch (Exception e) {
}
}
输出:-
Wrong number of segments >>>>>>> 400
将 Json 转换为 java 的最佳方法是使用 Gson 等转换器库 检查下面的 link :