如何在响应字符串请求数据上解析 Json POST 请求



>我有一些 JSON 响应需要找到一种方法来解析数据中的令牌

{
"status": true,
"message": "Logged in successfully",
"error_code": 0,
"result": {
"token": "eyJ0eXAiOiJBdXRoIiwiYWxnIjoiSFMyNTYifQ.eyJpYXQiOjE1NzEyODczNjEsImV4cCI6MTU3MTM3Mzg2MSwicGF5bG9hZCI6eyJ1c2VyX2lkIjoiMTAxIiwiY29tcGFueV9pZCI6IjEifX0.-BEWhUT762rkcdZCBG6gU8q52AhITUm_kPazh1Tsj78",
"unique_id": "101",
"first_name": "AAA",
"last_name": "R",
"user_groups_sites": [
{
"group_id": "6",
"group_name": "Zonal Manager",
"group_key": "zonal_manager",
"sites": [
{
"site_id": "1",
"site_name": "AAAA"
}
]
},
{
"group_id": "5",
"group_name": "Auditor",
"group_key": "auditor",
"sites": [
{
"site_id": "1",
"site_name": "AAAAA"
}
]
}
]
}
}

Sol 1:

JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(response);
JSONObject myResponse = jsonObject.getJSONObject("result");
String mToken = (String) myResponse.getString("token");
Log.e("result", myResponse.toString());

JSONArray userGroupsSites = myResponse.getJSONArray("user_groups_sites");
for (int i = 0; i < userGroupsSites.length(); i++) {
JSONObject sites = userGroupsSites.getJSONObject(i);
Log.e("actor", sites.toString());
JSONArray getSiteObject = sites.getJSONArray("sites");
JSONObject siteValue = getSiteObject.getJSONObject(0);
Log.e("siteValue", siteValue.toString());
String getSiteId = (String) siteValue.getString("site_id");
String getSiteName = (String) siteValue.getString("site_name");
System.out.println("Site Id: " + getSiteId);
System.out.println("Site Name: " + getSiteName);
}

} catch (JSONException e) {
e.printStackTrace();
}

溶胶:2 创建模型类:

型号.java

public class Model {
private boolean status;
private String message;
ResultData result;
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public ResultData getResult() {
return result;
}
public void setResult(ResultData result) {
this.result = result;
}
public class ResultData {
private String token;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
}

API 调用应为:

call.enqueue(new Callback<Model>() {
@Override
public void onResponse(@NonNull Call<Model> call, @NonNull Response<Model> response) {
System.out.println(response.body().getResult().getToken());
}
@Override
public void onFailure(@NonNull Call<Model> call, @NonNull Throwable t) {
t.printStackTrace();
}
});

这将正常工作。

你可以解析你的 JSON 响应,首先获取主 JSON 对象,然后获取第一个名为 result 的对象。

JSONObject jsonobject = new JSONObject(response);
JSONObject resultObject = jsonobject.getJSONObject("result");
String token = resultObject.getString("token");

最新更新