为什么我不能使用if或者打开jSONObject?

时间:2018-05-02 11:55:10

标签: android if-statement android-asynctask switch-statement

我只有一个 AsyncTask 使用侦听器与主要活动进行通信。响应到达的地方,第一个Toast将显示正确的值。问题是在尝试捕获我可以恢复值。因此,如果或切换不再起作用。

@Override
public void OnAsyncTaskComplete(String response) {

    Toast.makeText(getContext(),((ActivityLogin) getActivity()).choiceButton+" result: "+response, Toast.LENGTH_LONG).show();

    try {

        JSONObject obj = new JSONObject(response);

        String objservice = obj.getString("service");
        String objstatuCode = obj.getString("status-code");
        String objdescription = obj.getString("status-description");

        JSONObject result = obj.getJSONObject("result");

        if(!objstatuCode.equals("200") || objstatuCode.equals(null)){
            Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
            return;
        } else {
            Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
            return;
        }

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

enter image description here

1 个答案:

答案 0 :(得分:1)

我假设你得到JSONException

<强>为什么吗

Thrown to indicate a problem with the JSON API

问题来自

 String objstatuCode = obj.getString("status-code");
 JSONObject result = obj.getJSONObject("result");

JSON VALUE (KEY=status-code) int 。你应该纠正这一点。

一定是

int objstatuCode = obj.getInt("status-code");
String result    = obj.getString("result");

然后

if(objstatuCode!=200){
                Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
                return;
            } else {
                Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
                return;
            }