在 Spring Boot 应用程序中解析 JSON

我很难想出一种解析这种 JSON 的方法。在我的应用程序中获得此响应后,我需要能够分别访问数据和消息。


{

    "data": [

        {

            "email": "eskaferas@gmail.com",

            "firstName": "Seras",

            "lastName": "Meras"

        },

        {

            "email": "Soras@gmail.com",

            "firstName": "Oras",

            "lastName": "Moras"

        },

        {

            "email": "bzbzb@gmail.com",

            "firstName": "hello",

            "lastName": "bye"

        },

        {

            "email": "lrc@gmail.com",

            "firstName": "Seras",

            "lastName": "Meras"

        }

    ],

    "message": "Success"

}

任何人都可以建议一种专门用于 Spring Boot 的方法吗?或者是 Spring boot 中用来解析这种 JSON 类型的常用方法。


谢谢你。


编辑


我的主要问题是 Spring Boot 可以使用什么工具,如果我使用 Jackson,我的 POJO 类会是什么样子。会是这样吗?:


public class testPojo {

  Users[] users;

  String message;

}


温温酱
浏览 102回答 2
2回答

动漫人物

Pojo 类将如下所示:public class TestPojo{    private Users[] data;    private String message;    public Users[] getData() {        return data;    }    public void setData(Users[] data) {        this.data = data;    }    public String getMessage() {        return message;    }    public void setMessage(String message) {        this.message = message;     }}class Users {    private String email;    private String firstName;    private String lastName;    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public String getFirstName() {        return firstName;    }    public void setFirstName(String firstName) {        this.firstName = firstName;    }    public String getLastName() {        return lastName;    }    public void setLastName(String lastName) {        this.lastName = lastName;    }}在控制器的方法参数中使用 @RequestBody。@RestControllerclass AbcController{    PostMapping("/api")    public String create(@RequestBody TestPojo test){    // you can acess your json in test object    return "done"    } }

有只小跳蛙

import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.MapperFeature;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.PropertyNamingStrategy;import com.fasterxml.jackson.databind.SerializationFeature;import lombok.Getter;import lombok.Setter;import org.junit.Test;import org.springframework.context.annotation.Bean;import java.io.IOException;import java.util.List;public class TestJUnit {&nbsp; &nbsp; @Test&nbsp; &nbsp; public void exec() {&nbsp; &nbsp; &nbsp; &nbsp;String json = "{" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; \"data\": [" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; {" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"email\": \"eskaferas@gmail.com\"," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"firstName\": \"Seras\"," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"lastName\": \"Meras\"" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; }," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; {" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"email\": \"Soras@gmail.com\"," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"firstName\": \"Oras\"," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"lastName\": \"Moras\"" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; }," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; {" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"email\": \"bzbzb@gmail.com\"," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"firstName\": \"hello\"," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"lastName\": \"bye\"" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; }," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; {" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"email\": \"lrc@gmail.com\"," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"firstName\": \"Seras\"," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"lastName\": \"Meras\"" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; &nbsp; &nbsp; }" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; ]," +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"&nbsp; &nbsp; \"message\": \"Success\"" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"}".replaceAll(" ", "");&nbsp; &nbsp; &nbsp; &nbsp; ObjectMapper mapper = new ObjectMapper();&nbsp; &nbsp; &nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; JsonParser parser = mapper.readValue(json, JsonParser.class);&nbsp; &nbsp; &nbsp; &nbsp; } catch (IOException e) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; @Getter&nbsp; &nbsp; @Setter&nbsp; &nbsp; private static class JsonParser {&nbsp; &nbsp; &nbsp; &nbsp; private List<Data> data;&nbsp; &nbsp; &nbsp; &nbsp; private String message;&nbsp; &nbsp; }&nbsp; &nbsp; @Getter&nbsp; &nbsp; @Setter&nbsp; &nbsp; private static class Data{&nbsp; &nbsp; &nbsp; &nbsp; private String email;&nbsp; &nbsp; &nbsp; &nbsp; private String firstName;&nbsp; &nbsp; &nbsp; &nbsp; private String lastName;&nbsp; &nbsp; }//&nbsp; &nbsp; @Configuration&nbsp; &nbsp; private static class Configuration{&nbsp; &nbsp; @Bean&nbsp; &nbsp; public ObjectMapper objectMapper(){&nbsp; &nbsp; &nbsp; &nbsp; ObjectMapper mapper = new ObjectMapper();&nbsp; &nbsp; &nbsp; &nbsp; mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);&nbsp; &nbsp; &nbsp; &nbsp; mapper.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);&nbsp; &nbsp; &nbsp; &nbsp; mapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);&nbsp; &nbsp; &nbsp; &nbsp; mapper.setVisibility(mapper.getSerializationConfig()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .getDefaultVisibilityChecker().withFieldVisibility(JsonAutoDetect.Visibility.ANY)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .withGetterVisibility(JsonAutoDetect.Visibility.NONE)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .withSetterVisibility(JsonAutoDetect.Visibility.NONE)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .withCreatorVisibility(JsonAutoDetect.Visibility.NONE));&nbsp; &nbsp; &nbsp; &nbsp; mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);&nbsp; &nbsp; &nbsp; &nbsp; mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);&nbsp; &nbsp; &nbsp; &nbsp; return mapper;&nbsp; &nbsp; }&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java