【问题标题】:Spring - Convert JSON String to JSON objectSpring - 将 JSON 字符串转换为 JSON 对象
【发布时间】:2019-06-03 00:38:36
【问题描述】:

我将user 表存储如下:

|---------------------|------------------|-------------------------------------------------------------|
|      id             |     name         |    address                       
|---------------------|------------------|-------------------------------------------------------------|
|      1              |     ken          | {"street":"Street 1","city":"City1", "country":"USA"}       |     
|---------------------|------------------|-------------------------------------------------------------|

我的 POJO:

public class User{
   private int id;
   private String name;
   private String address;
    //setters and getters
}

在我的 RESTful 服务中,当我调用我的 API 时,我希望得到以下 JSON 作为响应:

{
   "id": 1,
   "name": "ken",
   "address":{
        "street":"Street 1",
        "city":"City1", 
        "country":"USA"
   }
}

我可以通过将 POJO 中的 address 更改为地址对象,然后将字符串映射到地址对象来做到这一点。

但是有没有其他方法可以将我的地址作为字符串保存在 POJO 中,然后它将呈现为 JSON?

【问题讨论】:

    标签: json rest spring-boot


    【解决方案1】:

    您可以在您的财产上使用@JsonSerialize

    @JsonSerialize(using = CustomeSerializer.class)
    private String address;
    
    
    public class CustomSerializer extends StdSerializer<String>{
        public CustomSerializer(){
            this(null);
        }
        public CustomSerializer(Class<String> t) {
            super(t);
        }
    
        @Override
        public void serialize(String address, JsonGenerator jsonGenerator,
                              SerializerProvider serializerProvider) throws IOException {
            jsonGenerator.writeObject(new ObjectMapper().readTree(address));
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-27
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-03
      • 2011-04-23
      • 2012-06-14
      • 2012-02-20
      相关资源
      最近更新 更多