2015-05-18 3 views
0

Я немного застрял на этом. Я пытаюсь сравнить строку против jsonobject.getString, и кажется, что я делаю, они не совпадают:Сравнение строки с JSON.getString

String date = scoreJson.getString("Date"); 
if (dateString.equals(date)) 
{ 
    //do stuff 
} 

Значение DateString присваивается здесь:

calendar = Calendar.getInstance(); 
int day = calendar.get(calendar.DAY_OF_MONTH), month = calendar.get(calendar.MONTH), year = calendar.get(calendar.YEAR); 

//months start at 0 in calendar 
month += 1; 

//use builder to create the dateString 
builder.append(year).append("-").append(month).append("-").append(day); 
dateString = builder.toString(); 

Когда я рассматриваю как Строки в отладке показывают «2015-05-18», однако они не будут совпадать в условном заявлении. Кто-нибудь может понять, почему и как я могу их сравнить?

Спасибо.

Edit: Объект JSON вернется в следующем формате:

{"ScoreData":{"Username":"testUser","Id":"8fb25209-863a-410b-a440- 
b5b57a903ee1","Date":"2015-02-25","Score":"25.3"}} 

Я извлечения значения из него здесь и сохранение в sharedprefs:

//response comes back as two JSONObjects, this makes the inner object into a new JSON 
JSONObject responseJson = new JSONObject(response); 

JSONObject scoreJson = new JSONObject(responseJson.getString("ScoreData")); 

String date = scoreJson.getString("Date"); 
puzzleScore = scoreJson.getString("Score"); 

SharedPreferencesWrapper.saveToPrefs(c, "score-" + date, puzzleScore); 

Я тогда проверка ключа здесь:

puzzleScore = SharedPreferencesWrapper.getFromPrefs(c, "score-" + dateString, "NotFound"); 

if (!puzzleScore.contains("NotFound")) 
{ 
    //do stuff 
} 
+0

Возможно, у вас есть символы, не подлежащие печати в строке. Также почему бы не сравнить экземпляры Date вместо этого? –

+0

Строки Json включают «так что попробуйте replaceAll (« \ »», «») перед сравнением. – user

+0

@AlexisC. Хм, возможно, я использую String, потому что место в моем коде, где мне нужно их сравнить, - это получить элемент из sharedpreferences, например: 'code SharedPreferencesWrapper.saveToPrefs (c," score- "+ date , puzzleScore); ' ' code puzzleScore = SharedPreferencesWrapper.getFromPrefs (c, "score-" + dateString, "NotFound"); ' – JasperMoneyshot

ответ

0

вы пытались добавить toString() после этого scoreJson.getString("Date"), поэтому код будет выглядеть как scoreJson.getString("Date").toString().

Я думаю, что это проблема с кодировкой. Если это не работает, проверьте пробелы вокруг строки. Вы можете удалить стартовые & задние пробелы с trim().

Надеюсь, это поможет, удачи ~

Смежные вопросы