我将sharedPref
中存储的json作为单行字符串
[
{
"url":"http:\/\/google.com",
"feedType":"Automotive"
},
{
"url":"http:\/\/google.com",
"feedType":"Automotive"
}
]
我正在使用下面的代码检查jl字符串中是否已存在url但由于json
使用\
反斜杠进行转义,因此无效。
String url = "http://google.com";
String jsonString = '[{"url":"http:\/\/google.com","feedType":"Automotive"},{"url":"http:\/\/google.com","feedType":"Automotive"}]';
if(jsonString.contains(url)) {
Toast.makeText(context, "URL already exists.", Toast.LENGTH_LONG).show();
return false;
}
请帮助我如何检查字符串中是否已存在url以避免欺骗。
答案 0 :(得分:1)
比较字符串时会忽略反斜杠:
String url = "http://google.com";
String jsonString = //get it from SharedPreferences
if(jsonString.replace("\\", "").contains(url)) {
Toast.makeText(context, "URL already exists.", Toast.LENGTH_LONG).show();
}
请注意使用replace("\\", "")
。
答案 1 :(得分:0)
我有两个解决方案。
首先,最难的是通过将json字符串反序列化为对象来删除转义字符,然后比较url
。
第二个是自己删除转义字符。