c'est ma chaîne forte> j'ai trouvé le résultat strong> p> maintenant, ma question est: strong> p> pourquoi ces guillemets et ces barres de citation sont ajoutés à la valeur de Il entrave vraiment le processus de vérification de la valeur de chaîne au côté serveur. p> "fort> J'ai fait une solution temporaire pour accomplir la tâche en coupant le caractère unique des deux côtés comme suit forte> p> ceci Travaillé parfaitement, mais je ne pense pas que ce soit une meilleure idée d'avenir !!! p> Informations supplémentaires: strong> p> variable jsonObject code> qui est une classe de com.google.gson.jsonObject package fort> p> string code> et jsonObject code> forte> p> JSONOBJECT code>? Y a-t-il une raison appropriée de cela? P> actuelTenkno code> n'est pas déclaré directement comme indiqué ci-dessus, il a été extrait de SharedPreferences Code> & s'il est déclaré directement, tout fonctionne bien. P> String currentTokenNo = preferences.getString(LOGINCRED_TOKEN,"");
4 Réponses :
à partir de vos commentaires et de votre logcat info, la valeur réelle obtenue de update: strong> p > Pour votre solution temporaire:
Je préfère la manière suivante: p> Si vous souhaitez également supprimer des barres obliques, utilisez: P> SharedPreferences code> est "/ suesjuf0a0alfr + wvizbw == y9iwl1ssrue9zrqppenmna" code> (avoir des guillemets), pas / Suesjuf0a0alfr + wvizbw == y9iwl1ssrue9zrqppenmna code>. C'est pourquoi vous avez jsontosubmit: {"jeton": "\" / suesjuf0a0alfr + wvizbw == y9iwl1ssrue9zrqppenmna \ ""} code>
jsontosubmit.addProperty ("jeton", couranteTokenno.Substring (1, courant-centenno.length () - 1)); code> p> p>
blockQquote> jsonToSubmit.addProperty("token", currentTokenNo.replaceAll("\"","").replaceAll("/",""));
Si oui, alors comment économiser de la chaîne sur SharedPreferences sans guillemets.
Si vous pouvez consulter le fichier XML du SP, vous verrez quelque chose comme le suivant Xml version = '1.0' coding = 'utf-8' autonome = 'oui'?>
Et je pense que vous devriez vérifier la valeur initiale du jeton, je veux dire que vous vérifiez le code qui génère et / ou répons le jeton
Salut! Avez-vous vérifié comme j'ai commenté?
Oui j'ai. Ma solution temporaire fonctionnera-t-elle pour l'avenir alors.
J'ai des messages dans le chat !!
Laissez-nous Continuer cette discussion dans le chat .
Tout ce que vous entrez dans votre logcat est correct. p>
Vous trouverez ci-dessous quelques points et raison pour laquelle cela se passe donc: p>
1) Slashes inutiles ajoutées à votre jeton. Pourquoi? Parce que votre jeton contient une barre oblique (\) qui est un caractère d'échappement. Donc, il sera écrit comme double barre oblique (\\) au lieu d'une barre oblique unique (\). P>
2) Devis de citation inutile ajouté à votre jeton. Pourquoi? Encore une fois, votre jeton est un objet de chaîne et commence par une citation ("). Donc, il sera écrit comme \". P>
de sorte que l'ensemble de votre jeton change de Pour plus d'informations sur le caractère d'échappement, voir ici:
https://docs.oracle.com/javase/tatuutoriel/java/data /Caractéristiques.html p> "/ suesjuf0a0alfr + wvizbw == \ nlmmwtghz90yh0nboatyb / a" code> à "\" / suesjuf0a0alfr + wvizbw == \\ nlmmwtghz90yh0nboatyb / a \ "" code>. Mais vous n'avez pas besoin de ne pas vous inquiéter que lorsque vous obtiendrez vos données de jeton de JSONObject code>, vous obtiendrez toujours le même jeton que vous avez été ajouté. P>
C'est un peu de temps après avoir posté ceci, mais pourquoi ne pas utiliser Vous n'auriez pas besoin de faire cette suppression gênante des guillemets inutiles et de supprimer les refuges. P>
Sauf si vous essayez de faire quelque chose comme l'ajout org.json.jsonObject code> à la place? p>
YourjsonObject.tostring () code> dans un autre jsonObject em>. p>
J'ai pu passer au-delà de ce problème en modifiant la manière dont la chaîne d'origine a été créée, à l'aide de Lors du débogage, la chaîne citerait comme prévu jusqu'à inséré dans le nouveau JSONObject. Utilisation de la méthode de sous-chaîne ci-dessus a fonctionné jusqu'à ce que j'ai trouvé utiliser tandis que p> Ajout au cas où il aide une personne à rechercher dans ce vieux problème. P> p> getasstring () code> au lieu de tostring () code> lorsque vous tirez la chaîne d'un autre JSONObject . getasstring () code>. P>
Êtes-vous sûr que
CurrentTenkenno Code> La variable est déclarée sous la formeString CODE>?@Miensol oui je suis sûr !!! Il est généré une forme cryptée de chaîne ..
Quel type de type de chaîne passez-vous? Faire de char, Const Char, quelque chose comme ça? Avez-vous également un codage comme UTF8 ou votre dortoir pointé sur elle n'importe où? Sachez que c'est une question étrange qui vient de mieux comprendre ce que vous passez
Il essaie d'échapper aux barres obliques qui sont légitimes.
@ K0SH Je sais que c'est essayer d'échapper aux personnages mais ne pouvait pas savoir pourquoi les guillemets y sont ajoutés.
Mon journal LOGCAT Lorsque vous utilisez votre code:
01-07 23: 18: 21.490 1619-1619 / com.Example.gsonhunes D / MainActivityJson: N ° de jeton actuel: / suesjuf0a0alfr + wvizbw == lmmwtghz90yh0nboatyb / a 01-07 23:18 : 21.490 1619-1619 / com.example.gsonitunes D / MainAllityjson: {"Jeton": "/ suesjuf0a0alfr + wvizbw == \ nlmmwtgghz90yh0nboatyb / a"} code>@Bnk afin que je dise si nous déclarons la chaîne directement tout fonctionne bien frère. ..
Pouvez-vous publier logcat en utilisant
log.d ("MainActivityJson", "N ° de jeton actuel:" + courant actuelTenkno); Code> Juste aprèsString CurrentTokenno = Préférences.GetString (LoginCred_Token, ""); Code>?@Bnk
Token actuel Non "/ suesjuf0a0alfr + wvizbw == y9iwl1ssrue9zrqppenmna" code> .. Désolé pour les jetons précédents Non, il a été remplacé. Mais le problème apparaît seulement après l'avoir ajouté àJSONOBJECT code>.Comme vous pouvez le constater, la valeur de SharedPreferences a déjà eu des guillemets, donc si elle est utilisée directement, elle doit être
String CurrentTokenno = "\" / suesjuf0a0alfr + wvizbw == y9iwl1ssrue9zrqppenmna \ ""; code>Vous pouvez voir dans mon commentaire précédent
N ° de jeton actuel: / suesjuf0a0alfr + wvizbw == lmmwtghz90yh0nboatyb / a code> (pas de guillemage) :)Laissez-nous Continuer cette discussion en chat .