recherche

Maison  >  Questions et réponses  >  le corps du texte

spring-data-redis - À propos de la chaîne JSON de l'objet de stockage Redis Spring Data, certains caractères inattendus apparaissent dans la valeur value

J'ai enregistré une chaîne json d'un objet pour chaque clé dans Redis, mais il y avait des caractères étranges lorsque je l'ai retiré

this.redisTemplate.opsForValue().set(key, objectMapper.writeValueAsString(XXX),  15 * 1000);

Voici le code valeur :

String xxxJSON= this.redisTemplate.opsForValue().get(key);

XXX xxx = objectMapper.readValue(xxxJSON, XXX.class);

Voici le résultat :

redis取到的值====   NULNULNULNULNULNULNULNULNUL。。。。。{json 内容}                               

C'est ce que vous voyez dans Redis Manager

\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00。。。。。。。。。。。。还有很多{json数据}

La sortie précédente du journal NUL est visible, mais une fois copiée, elle est pleine d'espaces Afin de permettre à tout le monde de voir l'effet, le NUL manuscrit

.

Le principal problème est que je dois convertir les données récupérées en objet. Si je supprime le NUL devant, elles peuvent être converties en objet. Si je l'ajoute, une erreur sera signalée, mais lorsque je copierai. il, il sera rempli d'espaces.
Les autres données conviennent à la liste définie. Il n'y a aucun problème avec les chaînes ou les chaînes, seules les chaînes json ont ce problème.

Quelqu'un a-t-il rencontré ce problème ? La raison principale est qu'il ne comprend pas pourquoi ce problème se produit. Pourquoi les chaînes JSON n'ont-elles pas ce problème ?

Essayez également d'utiliser s pour faire correspondre les espaces et remplacer et couper pour supprimer les espaces de début et de fin, mais cela n'a aucun effet et la chaîne n'est pas transformée

PHP中文网PHP中文网2782 Il y a quelques jours1112

répondre à tous(2)je répondrai

  • 大家讲道理

    大家讲道理2017-05-31 10:33:22

    trim peut être utilisé après avoir supprimé les espaces. Ce n'était pas le dernier code lors du test. "s" ne peut pas correspondre. De plus, l'objet Java Date est stocké dans Redis et automatiquement converti en. L'horodatage converti est inférieur à l'heure réelle. Cela m'a pris une heure et je n'ai toujours pas trouvé la raison. Quel piège.

    Utilisation de StringRedistemplate

    répondre
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-31 10:33:22

    Essayez d'utiliser StringRedisTemplate au lieu de RedisTemplate

    répondre
    0
  • Annulerrépondre