我想比较mysql数据库中使用json的字符串和我的字符串。
我从数据库中收到数据,日志显示我拥有所有数据。

try{
     JSONArray jArray = new JSONArray(result);
     for(int i=0;i<jArray.length();i++){
         json_data = jArray.getJSONObject(i);
         Log.i("mylog","TABLE_NAME: "+json_data.getString("table_name"));//returns cars

         if (  json_data.getString("table_name") == "cars" ) { //dosent work
              ....
         }
     }
} catch(JSONException e){
         Log.e("mylog", "Error parsing data "+e.toString());
     return false;
}

在日志中的这个例子中,我收到了表的名称:cars
如果条件不起作用,我也不知道为什么。
很奇怪。我试过很多方法。
你知道为什么我不能将json中的表名与简单字符串进行比较吗?

最佳答案

使用.equals()比较Java/Android中的两个字符串。

if (json_data.getString("table_name").equals("cars")) {

         }

它比较字符串引用,所以不能工作…
使用字符串文字时,请使用==
并且==仅适用于原始数据类型,这里是String is Object所以使用.equals

10-07 12:50
查看更多