Я немного застрял на этом. Я пытаюсь сравнить строку против 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
}
Возможно, у вас есть символы, не подлежащие печати в строке. Также почему бы не сравнить экземпляры Date вместо этого? –
Строки Json включают «так что попробуйте replaceAll (« \ »», «») перед сравнением. – user
@AlexisC. Хм, возможно, я использую String, потому что место в моем коде, где мне нужно их сравнить, - это получить элемент из sharedpreferences, например: 'code SharedPreferencesWrapper.saveToPrefs (c," score- "+ date , puzzleScore); ' ' code puzzleScore = SharedPreferencesWrapper.getFromPrefs (c, "score-" + dateString, "NotFound"); ' – JasperMoneyshot