gpt4 book ai didi

java - JwtBuilder 添加\到我的 Json 字符串 - Java

转载 作者:行者123 更新时间:2023-11-30 06:00:25 25 4
gpt4 key购买 nike

我有一个 JSON 字符串(由 Jackson 创建,用于转换对象):

String my_JSON_String = {"id":-1,"id_contratto":1,"datetime_inizio":"2018-09-15 17:44:02","datetime_fine":null,"numero_chiamate_individuali":-1,"minuti_totali_chiamate_individuali":1421,"numero_chiamate_gruppo":3027,"minuti_totali_chiamate_gruppo":-1,"numero_messaggi_individuali_testo":-1,"numero_messaggi_individuali_multimediali":-1,"numero_messaggi_gruppo_testo":-1,"numero_messaggi_gruppo_multimediali":-1,"numero_eventi_inviati":-1,"numero_interventi_creati":-1,"enabled":false}

我必须将此字符串放入 JWT 声明的名为“DATI”的自定义字段中。我使用:

JwtBuilder MY_JwtBuilder = Jwts.builder()
.setIssuedAt( new Date() )
.setIssuer("Fausto")
.setSubject("Ciao")
.claim("DATI", my_JSON_String )
.signWith(SignatureAlgorithm.HS256, "DonalDuck");
String JWT= MY_JwtBuilder.compact();

如果我测试 JWT 将其放入 https://jwt.io/ ,我得到以下字符串:

{
"iat": 1537026243,
"iss": "Fausto",
"sub": "Ciao",
"DATI": "{\"id\":-1,\"id_contratto\":1,\"datetime_inizio\":\"2018-09-15 17:44:02\",\"datetime_fine\":null,\"numero_chiamate_individuali\":-1,\"minuti_totali_chiamate_individuali\":1421,\"numero_chiamate_gruppo\":3027,\"minuti_totali_chiamate_gruppo\":-1,\"numero_messaggi_individuali_testo\":-1,\"numero_messaggi_individuali_multimediali\":-1,\"numero_messaggi_gruppo_testo\":-1,\"numero_messaggi_gruppo_multimediali\":-1,\"numero_eventi_inviati\":-1,\"numero_interventi_creati\":-1,\"enabled\":false}",
"exp": 1537029843
}

为 DATI 字段内的每个引号添加了一个\。这是网站方面的问题。如何避免添加\?

谢谢,福斯托

最佳答案

这里的问题是,您已经从 DATI 对象创建了一个字符串。JWTBuilder 将其视为字符串,并使用 \ 转义内部的 "

不要自己创建 JSON 字符串,而是创建一个 JSON 对象并将该对象作为参数传递给 claim,然后让 JWTBuilder 处理正确的问题该对象的序列化,例如:

JSONObject datiClaim = new JSONObject();
datiClaim.put("id", -1);
datiClaim.put("id_contratto", 1);

...

JwtBuilder MY_JwtBuilder = Jwts.builder()
.setIssuedAt( new Date() )
.setIssuer("Fausto")
.setSubject("Ciao")
.claim("DATI", datiClaim )
....

关于java - JwtBuilder 添加\到我的 Json 字符串 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52355245/

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