Подтвердить что ты не робот

Разбор JSON в Spring MVC с использованием Jackson JSON

Хорошо, поэтому я смотрел на это некоторое время, и я больше не буду дальше. У меня есть сервлет Spring MVC, который мне нужно принять JSON из веб-приложения переднего интерфейса JavaScript. Чтобы разобрать JSON, мне нужно использовать Джексона. Мне нужно принимать значения в JSON и хранить их в списке в том порядке, в каком они появляются в JSON. Я попытался использовать JsonFactory с объектами JsonParser и JsonNode, но вполне могу заставить его работать. Я также попытался просто открыть BufferedReader и перебрать тело запроса по строкам, но опять же не может это получить. Я рассмотрел пару связанных вопросов здесь, но пока никто не работал у меня.

Может ли кто-нибудь, кто знает, указать мне в правильном направлении здесь, пожалуйста, веб-страница с примером будет замечательной!

4b9b3361

Ответ 1

Весь смысл использования технологии сопоставления, такой как Jackson, заключается в том, что вы можете использовать объекты (вам не нужно самостоятельно разбирать JSON).

Определите класс Java, который похож на JSON, который вы ожидаете.

например. этот 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
}

Теперь, если у вас есть такой метод контроллера:

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

и вы пройдете в JSON сверху, Джексон автоматически создаст для вас объект Fizzle, и он будет сериализовать представление JSON для возвращаемого объекта Object для ответа с типом mime application/json.

Для полного рабочего примера см. предыдущий ответ.

Ответ 2

Я использую json lib из http://json-lib.sourceforge.net/
JSON-Lib-2,1-jdk15.jar

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

public void send()
{
    //put attributes
    Map m = New HashMap();
    m.put("send_to","[email protected]");
    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