如何使用正则表达式通过服务器拆分响应

时间:2019-04-02 00:41:35

标签: java android response

我想拆分通过服务器接收的响应,以便我可以获取值,并在文本上设置..但是我不能获取值...

响应:{“状态”:“否”,“ requestCount”:“ 0”,“ estelamCount”:“ 0”}

                    String[] split_model = response.split(",");
                  //  Log.i("split_model",split_model);
                    Log.i("phoneName", split_model[0]);

log ==> I / phoneName:{“状态”:“否”

3 个答案:

答案 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 ;