Heim  >  Fragen und Antworten  >  Hauptteil

spring-data-redis – Über die JSON-Zeichenfolge des Spring Data Redis-Speicherobjekts werden einige unerwartete Zeichen im Wert angezeigt

Ich habe für jeden Schlüssel in Redis eine JSON-Zeichenfolge eines Objekts gespeichert, aber als ich es herausnahm, waren einige seltsame Zeichen zu sehen

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

Dies ist der Wertcode:

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

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

Das ist die Ausgabe:

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

Das sehen Sie im 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数据}

Die vorherige NUL-Protokollausgabe ist sichtbar, aber beim Kopieren ist sie voller Leerzeichen. Damit jeder den Effekt sehen kann, wird das handgeschriebene NUL angezeigt

Das Hauptproblem besteht darin, dass ich die abgerufenen Daten in ein Objekt konvertieren muss. Wenn ich die NUL davor entferne, kann sie in ein Objekt umgewandelt werden. Wenn ich sie jedoch kopiere, wird ein Fehler gemeldet Es wird mit Leerzeichen gefüllt.

Andere Daten sind in Ordnung mit der Set-Liste. Es gibt kein Problem mit Strings oder Strings, nur JSON-Strings haben dieses Problem.

Ist jemand auf dieses Problem gestoßen? Der Hauptgrund ist, dass er nicht versteht, warum dieses Problem auch bei JSON-Strings auftritt

Versuchen Sie auch, s zu verwenden, um Leerzeichen abzugleichen und ersetzen und trimmen, um die führenden und nachgestellten Leerzeichen zu entfernen, aber das hat keine Auswirkung und die Zeichenfolge wird nicht transformiert

PHP中文网PHP中文网2719 Tage vor1047

Antworte allen(2)Ich werde antworten

  • 大家讲道理

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

    trim去掉空格可以用,测试的时候不是最新代码,"s"不能匹配,不知道怎么回事,另外Java Date对象存储到redis中,自动转化为时间戳,转化的时间戳比真实时间少了一个小时,原因都没找到,真坑啊

    用的就是StringRedistemplate

    Antwort
    0
  • 淡淡烟草味

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

    用StringRedisTemplate代替RedisTemplate试试

    Antwort
    0
  • StornierenAntwort