我想比较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