检查json字符串中的url

时间:2015-03-29 08:36:15

标签: java android json

我将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以避免欺骗。

2 个答案:

答案 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

第二个是自己删除转义字符。