我真的看不出我出错的地方。任何帮助将不胜感激。
我有JSONArray
JSONArray jsonArray = new JSONArray(responseString);
其中responseString是[“prob”,“2”]
我得到了第一个String
String maybeProb = jsonArray.getString(0);
当我使用Toast显示它时,一切正常,吐司弹出窗口就说明了问题
Toast.makeText(getBaseContext(),maybeProb ,Toast.LENGTH_LONG).show();
但是当我使用if (maybeProb == "prob")
时,它不会返回真正的
为什么不呢???我做错了什么???
您需要了解更多详情:
构成原始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);
非常感谢能帮助我的人
答案 0 :(得分:4)
要比较java中的对象,请使用.equals()
方法而不是"=="
运算符
替换以下代码
if(maybeProb == "prob") {
}
这个。
if(maybeProb.equals("prob")) {
}
答案 1 :(得分:2)
equals运算符(==
)仅在两个对象相同时才返回true,而不是它们的值相同。因此,当您将对象maybeProb
与对象"prob"
进行比较时,它会返回false
如果您想进行比较,则必须使用maybeprob.equals("prob")
。