我目前写了一个链接到我的Android应用程序的PHP脚本但是我有一个问题: 我的PHP脚本有2个输出:
当输出为null时我想在我的android应用程序中:
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
如果输出是[“成功”]我希望我的Android应用程序执行:
} else {
goodrating.setVisibility(View.VISIBLE);
badrating.setVisibility(View.VISIBLE);
}
问题尚未得到解决
通过ASYNCTASK更新我的完整代码:
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;
}
答案 0 :(得分:1)
问题
答案 1 :(得分:0)
尝试 if (json == null)
。这通常是您在Java中检查空对象的方式。
编辑:这是因为Java中的大多数“对象”实际上只是对数据结构本身的引用。使用 == null
检查引用是否为null,并使用.equals()
确定对象在逻辑上是否与另一个对象等效。
再试一次 - 看起来JsonObject class中有一个JsonValue.NULL
常量。试试if (json == JsonValue.NULL)
答案 2 :(得分:0)
所以你要做的就是:
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);
}
答案 3 :(得分:0)
所以,当你点击网站时,它是仅输出[“成功”]还是空? 如果是这样的话,那就不是你输出的json。你想输出的是这样的:
{
"response": "Success"
}
或
{
"response": null
}
只有这样,Android端的JSON才能正常运行