alibaba / fastjson

FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.
https://github.com/alibaba/fastjson2/wiki/fastjson_1_upgrade_cn
Apache License 2.0
25.74k stars 6.5k forks source link

json串中包含一个json字符串,怎么反序列化 #3008

Open BlueSky15171 opened 4 years ago

BlueSky15171 commented 4 years ago

json

{
       "Preference": "{\"OfficeID\":0,\"WorkGroupID\":0}"
}

怎么反序列化成如下bean? javaBean

public class Bean{
 @JSONField(name = "Preference")
 private PreferenceBean preference;
}
public class PreferenceBean{
 @JSONField(name = "OfficeID")
 private int officeID;
 @JSONField(name = "WorkGroupID")
 private int workGroupID;
}
BlueSky15171 commented 4 years ago

解决了

public class OfficeBean {
    @JSONField(name = "Preference", deserializeUsing = PreferenceDeserializer.class)
    private PreferenceBean preferenceBean;
}
    public static class PreferenceBean {
        @JSONField(name = "OfficeID")
        private int officeID;
        @JSONField(name = "WorkGroupID")
        private int workGroupID;
}
public static final String json = "{\"Preference\": \"{\\\"OfficeID\\\":90,\\\"WorkGroupID\\\":70}\"}";

    //public static final String json = "{}";
    public static void main(String[] args) {
        OfficeBean bean = JSON.parseObject(json, OfficeBean.class);
        System.out.println(bean);
    }
githublaohu commented 4 years ago

close哈。