我想拆分通过服务器接收的响应,以便我可以获取值,并在文本上设置..但是我不能获取值...
响应:{“状态”:“否”,“ requestCount”:“ 0”,“ estelamCount”:“ 0”}
String[] split_model = response.split(",");
// Log.i("split_model",split_model);
Log.i("phoneName", split_model[0]);
log ==> I / phoneName:{“状态”:“否”
答案 0 :(得分:1)
String status ="";
JSONObject jsonObject = new JSONObject(response); //convert to json
if (jsonObject.has("status")){ //check if has the key
status = jsonObject.getString("status"); // get the value
}else{
}
Log.d("TAG", status); // do sth with the value
//Log => status
答案 1 :(得分:1)
我认为您正在询问解析响应的方法,这就是您的方法
JSONObject myJson = new JSONObject(response);
String status = myJson.optString("status");
String count = myJson.optString("requestCount");
String estelamCount = myJson.optString("estelamCount");
答案 2 :(得分:1)
您从服务器接收json数据,因此您可以按照先前的答案指出将其解析为json。更好的是,您可以使用Gson库按以下方式解析数据, 1-创建一个代表您的居所的类,您可以使用http://www.jsonschema2pojo.org/之类的工具来实现此目的,只需粘贴json字符串,然后从右侧的选项中选择Java作为目标语言,选择Json作为源类型,并以Gson作为注释样式,然后输入要使用的任何类名,结果应如下所示 包com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Response {
@SerializedName("status")
@Expose
public String status;
@SerializedName("requestCount")
@Expose
public String requestCount;
@SerializedName("estelamCount")
@Expose
public String estelamCount;
}
然后,当您要处理结果时,可以执行以下操作
Gson gson = new Gson();
//now you can parse the response string you received, here is responseString
Response response = gson.fromJson(responseString, Response.class);
//now you can access any field using the response object
Log.d("Reponse" , "status = " + response.status + ", requestCount = " + response.requestCount + ", estelamCount = " + response.estelamCount ;