首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查JSON输出

检查JSON输出
EN

Stack Overflow用户
提问于 2013-07-15 23:04:46
回答 3查看 84关注 0票数 0

目前,我编写了一个链接到我的android应用程序的php脚本,但是我有一个问题:我的php脚本有两个输出:

  1. “成功”

当输出为null时,我希望在我的android应用程序中:

代码语言:javascript
复制
if (json.equals(null)) {
    goodrating.setVisibility(View.GONE);
    badrating.setVisibility(View.GONE);

如果输出是“成功”,我希望我的android应用程序:

代码语言:javascript
复制
    } else {
 goodrating.setVisibility(View.VISIBLE);
 badrating.setVisibility(View.VISIBLE);

        }

问题尚未得到解决,

更新这里是我通过ASYNCTASK:的完整代码

代码语言:javascript
复制
protected String doInBackground(String... params) {
if (fb.isSessionValid()) {
                    String resulta;
                    JSONObject obj = null;
                    String jsonUser = fb.request("me");
                    obj = Util.parseJson(jsonUser);
                    String email = obj.optString("email");

                    String phonename = prefs.getString("esmlphone", "value");
                    InputStream isr = null;
                    HttpClient httpclient = new DefaultHttpClient();
                    String tablename = prefs.getString("hazahuwakeylurl",
                            "walashi");
                    HttpPost httpost = new HttpPost(
                            "secret");
                    HttpResponse resposne = httpclient.execute(httpost);
                    HttpEntity entity = resposne.getEntity();
                    isr = entity.getContent();
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(isr, "UTF-8"), 8);
                    StringBuilder sb = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                    }
                    isr.close();
                    resulta = sb.toString();
                    final JSONArray jArray = new JSONArray(resulta);
                    try {
                        for (int i = 0; i < jArray.length(); i++) {
                            JSONObject json = jArray.getJSONObject(0);
                            if (json.isNull("response")) {
                                goodrating.setVisibility(View.GONE);
                                badrating.setVisibility(View.GONE);
                            } else {
                                goodrating.setVisibility(View.VISIBLE);
                                badrating.setVisibility(View.VISIBLE);
                            }
                        }

                    } catch (Exception e) {
                        Log.d("visibility", e.toString());
                    }
                }

            return null;

        }
EN

回答 3

Stack Overflow用户

发布于 2013-07-16 02:41:17

问题

  1. " null“不是有效的JSON,但是null是有效的。检查http://jsonlint.com/
  2. 根据您的异常,您将字符串转换为JSON对象。因此,我猜想jArray只是您响应的一个数组。您应该首先将响应转换为JSON数组或对象。
  3. 一旦解决了#2,http://developer.android.com/reference/org/json/JSONArray.html#isNull(int)是检查JSONArray中的JSONObject是否为null的正确方法。
票数 1
EN

Stack Overflow用户

发布于 2013-07-15 23:11:24

所以你要做的是:

代码语言:javascript
复制
if(json.isNull("response"))
    goodrating.setVisibility(View.GONE);
    badrating.setVisibility(View.GONE);
} else if(json.getString("response").equals("Success")){
    goodrating.setVisibility(View.VISIBLE);
    badrating.setVisibility(View.VISIBLE);
}
票数 0
EN

Stack Overflow用户

发布于 2013-07-16 22:25:15

所以,当你点击网站,它是只输出“成功”还是零?如果是这样的话,那就不是你要输出的东西了。您希望输出的内容如下所示:

代码语言:javascript
复制
{
    "response": "Success"
}

代码语言:javascript
复制
{
    "response": null
}

只有这样,Android端的JSON才能正常工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17665376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档