我有一個像
@Getter
@Setter
public class MyObject {
private String name;
private String extension;
}
我需要按照 JSON 生成(用于 Web 服務):
{
"name" : "Hein Bl?d"
"extension:anybill" : "blah blah"
}
要生成我使用的 JSON javax.ws.rs.client.Entity.json(myObject)
。問題是第二個屬性中的“:”(因為“:”對于變數名稱是無效字符)。是否有任何注釋來指定屬性鍵的名稱?或者我可以以任何其他方式重命名生成的 JSON 屬性嗎?
uj5u.com熱心網友回復:
我不建議將 JAX-RS 和 Jackson 混合使用。由于您使用的是 javax.ws.rs.client.Entity,因此您應該在物體類上使用@JsonbProperty,它是 Java EE 的 JSON-P 的一部分,旨在與 JAX-RS 一起使用:
@JsonbProperty("extension:anybill")
private String extension;
uj5u.com熱心網友回復:
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
public static void main(String... args) throws IOException {
MyObject obj = new MyObject();
obj.name = "Hein Bl?d";
obj.extension = "blah blah";
String json = new ObjectMapper().writeValueAsString(obj);
MyObject res = new ObjectMapper().readValue(json, MyObject.class);
}
public static class MyObject {
@JsonProperty("name")
private String name;
@JsonProperty("extension:anybill")
private String extension;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/521551.html
標籤:爪哇json
下一篇:在字串中使第二個單詞大寫