将字符串与 JSON.getString 进行比较
Comparing String against JSON.getString
我有点卡在这上面了。我正在尝试将字符串与 jsonobject.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”,但是它们在条件语句中不匹配。有谁知道为什么,以及我如何比较它们?
谢谢。
编辑: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
}
您是否尝试过在 scoreJson.getString("Date")
之后添加 toString()
,所以代码会像 scoreJson.getString("Date").toString()
。
我认为是编码问题。如果这不起作用,请检查字符串周围的空格。您可以使用 trim()
.
删除开头和结尾的空格
希望对你有所帮助,祝你好运~
我有点卡在这上面了。我正在尝试将字符串与 jsonobject.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”,但是它们在条件语句中不匹配。有谁知道为什么,以及我如何比较它们?
谢谢。
编辑: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
}
您是否尝试过在 scoreJson.getString("Date")
之后添加 toString()
,所以代码会像 scoreJson.getString("Date").toString()
。
我认为是编码问题。如果这不起作用,请检查字符串周围的空格。您可以使用 trim()
.
希望对你有所帮助,祝你好运~