springboot中json/xml与javabean互转

柔情痞子 提交于 2020-12-06 15:41:17

1:pom.xml中:

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>2.9.9</version>
        </dependency>

2:

@Component
@Data
@JacksonXmlRootElement(localName = "SomeModel")
public class SomeModel {
    private String name;
    private int age;
    private String addr;
    @JacksonXmlElementWrapper(localName = "Myfriends")
    @JacksonXmlProperty(localName = "string") //注意:即使换成int程序也不会出异常
    private List<String> friends;

}

3:

 @Autowired
    SomeModel someModel;
    @GetMapping("/testlombokdata")
    @ResponseBody
    public void testlombokdata() throws IOException {
//        String t = "{\"name\":\"lisi\",\"age\":10,\"addr\":\"road13\",\"friends\":[\"abc\",\"efg\",\"hij\"]}";
//        String s = URLEncoder.encode(t, "utf8");
//        System.out.println(s);

        //javabean to json or json to javabean
//        ObjectMapper objectMapper = new ObjectMapper();
        someModel.setName("zs");
        someModel.setAge(10);
        someModel.setAddr("road13");
        String[] fs = new String[]{"abc","efg","hij"};
        someModel.setFriends(Arrays.asList(fs));
        HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
//        objectMapper.writeValue(response.getWriter(),someModel);
//        System.out.println(someModel.toString());
//        HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
//        String data = httpServletRequest.getParameter("data");
//        SomeModel someModel1 = objectMapper.readValue(data.getBytes(), SomeModel.class);
//        System.out.println("data="+someModel1.toString());
        //{"name":"zs","age":10,"addr":"road13","friends":["abc","efg","hij"]}
//http://localhost:8080/testlombokdata?data=%7B%22name%22%3A%22lisi%22%2C%22age%22%3A10%2C%22addr%22%3A%22road13%22%2C%22friends%22%3A%5B%22abc%22%2C%22efg%22%2C%22hij%22%5D%7D

        //javabean to xml or xml to javabean
        XmlMapper xmlMapper = new XmlMapper();
        ObjectWriter writer = xmlMapper.writerFor(SomeModel.class);
        writer.writeValue(response.getWriter(),someModel);
        System.out.println(someModel);
    }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!