使用Jackson JSON在Spring MVC中解析JSON

Mea*_*ell 40 java spring json spring-mvc jackson

好吧,所以我现在已经看了一会儿,现在就没有了.我有一个Spring MVC servlet,我需要从JavaScript前端Web应用程序接受JSON.要解析JSON,我需要使用Jackson.我需要获取JSON中的值,并按照它们在JSON中出现的顺序将它们存储到List中.我已经尝试将JsonFactory与JsonParser和JsonNode对象一起使用,但可以让它完全正常工作.我还试图打开一个BufferedReader并逐行遍历请求体,但是再次也无法完成.我在这里看了几个相关的问题,但到目前为止都没有对我有用.

知道的任何人都可以在这里找到正确的方向吗,一个带有示例的网页会很棒!

Sea*_*oyd 81

使用像Jackson这样的映射技术的全部意义在于你可以使用Objects(你不必自己解析JSON).

定义一个类似于您期望的JSON的Java类.

例如这个JSON:

{
"foo" : ["abc","one","two","three"],
"bar" : "true",
"baz" : "1"
}
Run Code Online (Sandbox Code Playgroud)

可以映射到这个类:

public class Fizzle{
    private List<String> foo;
    private boolean bar;
    private int baz;
    // getters and setters omitted
}
Run Code Online (Sandbox Code Playgroud)

现在,如果你有一个这样的Controller方法:

@RequestMapping("somepath")
@ResponseBody
public Fozzle doSomeThing(@RequestBody Fizzle input){
    return new Fozzle(input);
}
Run Code Online (Sandbox Code Playgroud)

并且你从上面传递JSON,Jackson将自动为你创建一个Fizzle对象,它会将返回的Object的JSON视图序列化为具有mime类型的响应application/json.

有关完整的工作示例,请参阅我之前的答案.