Php 检查JSON输出
我目前编写了一个链接到android应用程序的php脚本,但我有一个问题: 我的php脚本有两个输出:Php 检查JSON输出,php,android,json,Php,Android,Json,我目前编写了一个链接到android应用程序的php脚本,但我有一个问题: 我的php脚本有两个输出: if (json.equals(null)) { goodrating.setVisibility(View.GONE); badrating.setVisibility(View.GONE); [“成功”] 空的 当输出为空时,我希望在我的android应用程序中: if (json.equals(null)) { goodrating.setVisibility(
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
如果输出为[“成功”],我希望我的android应用程序执行以下操作:
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
} else {
goodrating.setVisibility(View.VISIBLE);
badrating.setVisibility(View.VISIBLE);
}
问题尚未解决
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
通过ASYNCTASK更新我的完整代码:
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
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;
}
受保护的字符串doInBackground(字符串…参数){
if(fb.isSessionValid()){
字符串结果;
JSONObject对象j=null;
字符串jsonUser=fb.request(“me”);
obj=Util.parseJson(jsonUser);
字符串email=obj.optString(“电子邮件”);
String phonename=prefs.getString(“esmlphone”、“value”);
InputStream isr=null;
HttpClient HttpClient=新的DefaultHttpClient();
String tablename=prefs.getString(“hazahuwakeylurl”,
“walashi”);
HttpPost HttpPost=新的HttpPost(
“秘密”);
HttpResponse resposne=httpclient.execute(httpost);
HttpEntity entity=resposne.getEntity();
isr=entity.getContent();
BufferedReader reader=新的BufferedReader(
新的InputStreamReader(isr,“UTF-8”),8);
StringBuilder sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
isr.close();
resulta=sb.toString();
最终JSONArray jArray=新JSONArray(结果);
试一试{
for(int i=0;i
尝试如果(json==null)
。这通常是在Java中检查空对象的方式
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
编辑:这是因为Java中的大多数“对象”实际上只是对数据结构本身的引用。使用==null
检查引用是否为null,并使用.equals()
确定一个对象是否在逻辑上等同于另一个对象
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
再试一次-它看起来像是一个
JsonValue.NULL
常量。尝试如果(json==JsonValue.NULL)
那么您要做的是:
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
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);
}
问题
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
那么当你点击网站时,它是只输出[“Success”]还是空值? 如果是这样的话,输出的不是json。要输出的内容如下所示:
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
{
"response": "Success"
}
或
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);
只有这样,Android端的JSON才能正常工作你能给我举个例子吗?太棒了,很高兴我能帮上忙!请大家帮个忙,如果它解决了你的问题,就把它标记为一个被接受的答案,这样每个人都知道这个问题已经得到了回答。那么问题到底是什么呢?我看到代码更新了,但是你没有说什么其他的错误。。。
if (json.equals(null)) {
goodrating.setVisibility(View.GONE);
badrating.setVisibility(View.GONE);