我真的看不出我哪里错了。任何帮助将不胜感激。
我有一个 JSONArray
JSONArray jsonArray = new JSONArray(responseString);
其中 responseString 是 ["prob", "2"]
我得到第一个 String
String maybeProb = jsonArray.getString(0);
当我使用 Toast 显示它时一切正常,toast 弹出窗口只是说 prob
Toast.makeText(getBaseContext(),maybeProb ,Toast.LENGTH_LONG).show();
但是当我使用 if (maybeProb == "prob")
时,它不会返回 true
为什么不呢???我做错了什么???
为您提供更多详细信息:
构成原始 JSONArray
的 responseString 来自 HttpPost
到我的服务器
InputStream is = null;
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
//Convert response to string
responseString = convertStreamToString(is);
public String convertStreamToString(InputStream inputStream) {
StringBuilder sb = null;
String result = null;
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
inputStream.close();
result = sb.toString();
}
catch(Exception e)
{
Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
}
// return the string
return result;
}
我服务器上做出响应的 PHP 是
$message = array("prob", "2");
$response = json_encode($message);
print($response);
非常感谢任何能帮助我的人
最佳答案
要在 Java 中比较对象,请使用 .equals()
方法而不是 "=="
运算符
替换下面的代码
if(maybeProb == "prob") {
}
用这个。
if(maybeProb.equals("prob")) {
}
关于Java - 来自 JSONArray 的字符串在 if 语句中不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19377119/