gpt4 book ai didi

android - jsonObject.addProperty 方法正在为其值添加不必要的引号和斜杠

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:03:35 25 4
gpt4 key购买 nike

这是我的字符串

String currentTokenNo = "/SUeSjUf0A0aLFr+wVIZbw==\nLmmWtgHZ90yH0NBoATYB/A"

我已将此字符串添加到我的 JsonObject 中,它是 com.google.gson.JsonObject 的一个类包

  JsonObject jsonToSubmit = new JsonObject();

try {

jsonToSubmit.addProperty("token", currentTokenNo);

} catch (Exception e) {

e.printStackTrace();
}

但是当我记录我的 StringJsonObject

Log.d("mainactivityjson", "Current Token No : "+currentTokenNo );
Log.d("mainactivityjson", "jsonToSubmit : "+jsonToSubmit);

我找到了结果

D/mainactivityjson: Current Token No : "/SUeSjUf0A0aLFr+wVIZbw==\nLmmWtgHZ90yH0NBoATYB/A"
D/mainactivityjson: jsonToSubmit : {"token":"\"/SUeSjUf0A0aLFr+wVIZbw==\\nLmmWtgHZ90yH0NBoATYB/A\""}

现在,我的问题是:

JsonObject 的值为什么要加上引号和斜杠?有什么合适的理由吗?

这确实妨碍了在服务器端检查字符串值的过程。

我已经完成了一个临时解决方案,通过从两侧修剪单个字符来完成任务,如下所示

jsonToSubmit.addProperty("token",currentTokenNo.substring(1,currentTokenNo.length()-1));

这非常有效,但我不认为这对 future 来说是个更好的主意!!!

附加信息:

变量 currentTokenNo 没有如上所示直接声明,它是从 SharedPreferences 中检索的,如果直接声明则一切正常。

String currentTokenNo = preferences.getString(LOGINCRED_TOKEN,"");

如果直接声明同一个变量,一切正常。

我们将不胜感激。

最佳答案

根据您的评论和 logcat 信息,实际值来自 SharedPreferences"/SUeSjUf0A0aLFr+wVIZbw==y9iWl1SSrUe9zRQppENMNA" (带引号),不是 /SUeSjUf0A0aLFr+wVIZbw==y9iWl1SSrUe9zRQppENMNA .这就是为什么你得到 jsonToSubmit : {"token":"\"/SUeSjUf0A0aLFr+wVIZbw==y9iWl1SSrUe9zRQppENMNA\""}


更新:

For your temporary solution: jsonToSubmit.addProperty("token",currentTokenNo.substring(1,currentTokenNo.length()-1));

我更喜欢以下方式:

jsonToSubmit.addProperty("token", currentTokenNo.replaceAll("\"",""));

如果您还想删除斜杠,请使用:

jsonToSubmit.addProperty("token", currentTokenNo.replaceAll("\"","").replaceAll("/",""));

希望对您有所帮助!

关于android - jsonObject.addProperty 方法正在为其值添加不必要的引号和斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34576024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com