我是android的新手并且正在努力获取json对象的值。有人可以帮助我吗?
从服务器返回的json为{"status":"active"}
我正在使用Android异步Http客户端库..
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
JSONArray j = new JSONArray(response);
t.setText(j.getJSONObject(0).getString('status'));//this doesn't set the text to the status
} catch (JSONException e) {
Log.e("MYAPP", "unexpected JSON exception", e);
}
}
答案 0 :(得分:1)
你可以使用
JSONObject jsonObject = new JSONObject(response);
因为{"status":"active"}
是JSONObject。
并使用
t.setText(jsonObject.getString("status"));
完整代码
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
JSONObject jsonObject = new JSONObject(response);
t.setText(jsonObject.getString("status"));
} catch (JSONException e) {
Log.e("MYAPP", "unexpected JSON exception", e);
}
}
根据其他答案创建新JSONObject
是浪费。所以直接使用它
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
t.setText(response.getString("status"));
} catch (JSONException e) {
Log.e("MYAPP", "unexpected JSON exception", e);
}
}
注意:创建更多实例是为了表现不佳
答案 1 :(得分:1)
它已经是一个JSON对象作为传入参数您不需要创建JSON数组或JSON对象的外部对象 试试这个。
t.setText(response.getString("status"));
答案 2 :(得分:0)
替换这个:
JSONArray j = new JSONArray(response);
t.setText(j.getJSONObject(0).getString("status"));
使用:
JSONObject j = new JSONObject(response);
t.setText(j.getString("status"));
如果你收到String作为回应你必须尝试这个希望它可以帮助你
编辑:
但是在你的情况下,JSONObject会响应所以你可以直接尝试这样:
t.setText(response.getString("status"));
答案 3 :(得分:0)
使用直接JSONObject获取值
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
t.setText(response.getString("status"));
} catch (JSONException e) {
Log.e("MYAPP", "unexpected JSON exception", e);
}
}
答案 4 :(得分:0)
您似乎不熟悉JSON对象和JSON数组。我会建议您在Log.i("response", response.toString())
打印您的回复,然后在检查JSON validator的回复后执行实际操作。
答案 5 :(得分:0)
使用optString而不是getString,因为如果你使用getString并且键“status”没有退出,那么app可能会崩溃。
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
t.setText(j.getJSONObject(0).optString('status'));
} catch (JSONException e) {
Log.e("MYAPP", "unexpected JSON exception", e);
}
}