我想将使用JSON的mysql数据库中的字符串与我的字符串进行比较。 我从数据库收到数据,Log显示我有所有数据。
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;
}
并且在Log I的这个例子中收到了表名:cars 以下IF条件不起作用,我不知道为什么。 它很奇怪。我尝试了很多方法。
您知道为什么我无法将JSON中的table_name与简单的String进行比较吗?
答案 0 :(得分:7)
使用.equals()
比较java / android中的两个字符串。
if (json_data.getString("table_name").equals("cars")) {
}
它比较Strings refrence如此无法工作......
当您使用字符串文字时,请使用==
和==
仅适用于原始数据类型,此处为String is Object
因此请使用.equals