使用杰克逊和弹簧靴发送json

时间:2018-06-21 19:11:05

标签: java json spring-boot

我需要将json发送到将使用该json的网址,基本上,我有一个Dto列表,需要将其转换为Json(与jackson一起使用)。 必须在标头中传递一些信息: 时间戳=时间,键= blablabla,accesskey = bla bla bla 因为我没有使用Spring的经验,所以我需要知道如何使用Spring Boot来执行HTTP请求 (是帖子吗?)

这是我到目前为止所执行的:

Dto学生类

  public class StudentDto {

    private String name;
    private String RM;
    private String RG;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRM() {
        return RM;
    }

    public void setRM(String RM) {
        this.RM = RM;
    }

    public String getRG() {
        return RG;
    }

    public void setRG(String RG) {
        this.RG = RG;
    }
}

将我的学生列表转换为json

    public String convertToJson(List obj) throws JsonProcessingException {

        ObjectMapper mapper = new ObjectMapper();
        String jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
        return jsonInString;
    }
}

这是json必须离开的格式

{
"table": "student",
"rows":
[
    {
        "PersonID": 1,
        "name": "Name",
        "RM": "56656565",
        "RG": "8787845-7",
    },
{
        "PersonID": 2,
        "name": "Name",
        "RM": "56656565",
        "RG": "8787845-7"   
    }
]
}

1 个答案:

答案 0 :(得分:0)

以下是

以及如何使用rest模板的示例。您将要为具有String table;List<StudentDto> rows;作为成员的请求创建一个类

private static void createEmployee()
{
    final String uri = "http://localhost:8080/springrestexample/employees";
    MultiValueMap<String> headers = new MultiValueMap<>();
    //set headers
    HttpEntity<EmployeeVO> newEmployee = new HttpEntity<>(new EmployeeVO(-1, "Adam", "Gilly", "test@email.com"),headers);

    RestTemplate restTemplate = new RestTemplate();
    EmployeeVO result = restTemplate.postForObject( uri, newEmployee, EmployeeVO.class);

    System.out.println(result);
}

*编辑添加的标题

* edid look here for json formatting

您还需要将id字段添加到对象中