如何在Spring控制器中将JSON转换为java对象,反之亦然?

时间:2015-03-22 06:32:35

标签: java json spring spring-mvc

我想创建一个简单的Spring项目,作为RESTful服务。

我想从前端发送JSON,并希望使用@RequestBody将其转换为Java对象。在后端修改对象后,我需要将该对象转换回JSON并发送到前端。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

您可以使用杰克逊图书馆。可以在此处找到一个示例:http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/

答案 1 :(得分:2)

Spring中的序列化(POJO - > JSON)和反序列化(JSON - > POJO)只需通过@RequestBody@ResponseBody注释即可获得。

您只需要在服务器端定义一个表示/映射JSON对象的Java类。

示例:

输入JSON

{id: 123, name: "your name", description: ""}

Java类

public class MyClass {
    private int id;
    private String name;
    private String description;
}

控制器中的方法

public void postJson(@RequestBody MyClass o){
    // do something...
}

public @ResponseBody MyClass getJson(){
    // do something...
}

注意我省略了@RequestMapping次设置。

答案 2 :(得分:0)

您必须为POST请求提供csrf令牌。相反,你可以试试这个。

sending HashMap by angularjs $http.get in spring mvc

它只是额外的@RequestParams,但更好的一面,你也可以发送更多的信息,而不仅仅是相应的对象。