Java - 来自JSONArray的字符串在if语句中不匹配

时间:2013-10-15 08:59:24

标签: java arrays

我真的看不出我出错的地方。任何帮助将不胜感激。

我有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);

非常感谢能帮助我的人

2 个答案:

答案 0 :(得分:4)

要比较java中的对象,请使用.equals()方法而不是"=="运算符

替换以下代码

 if(maybeProb  == "prob") {
 }

这个。

 if(maybeProb.equals("prob")) {
 }

答案 1 :(得分:2)

equals运算符(==)仅在两个对象相同时才返回true,而不是它们的值相同。因此,当您将对象maybeProb与对象"prob"进行比较时,它会返回false

如果您想进行比较,则必须使用maybeprob.equals("prob")