繁体   English   中英

使用Jackson JSON在Spring MVC中解析JSON

[英]Parsing JSON in Spring MVC using Jackson JSON

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

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

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

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

例如这个JSON:

{
"foo" : ["abc","one","two","three"],
"bar" : "true",
"baz" : "1"
}

可以映射到这个类:

public class Fizzle{
    private List<String> foo;
    private boolean bar;
    private int baz;
    // getters and setters omitted
}

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

@RequestMapping("somepath")
@ResponseBody
public Fozzle doSomeThing(@RequestBody Fizzle input){
    return new Fozzle(input);
}

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

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

我正在使用来自http://json-lib.sourceforge.net/的 json lib
JSON-LIB-2.1-jdk15.jar

import net.sf.json.JSONObject;
...

public void send()
{
    //put attributes
    Map m = New HashMap();
    m.put("send_to","my@admin.lan");
    m.put("email_subject","this is a test email");
    m.put("email_content","test email content");

    //generate JSON Object
    JSONObject json = JSONObject.fromObject(content);
    String message = json.toString();
    ...
}

public void receive(String jsonMessage)
{
    //parse attributes
    JSONObject json = JSONObject.fromObject(jsonMessage);
    String to = (String) json.get("send_to");
    String title = (String) json.get("email_subject");
    String content = (String) json.get("email_content");
    ...
}

更多样本http://json-lib.sourceforge.net/usage.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM