首页 > 解决方案 > Ninja Framework:能够将 ArrayList 序列化为 JSON,但为什么不反之呢?

问题描述

路线.java:

        router.POST().route("/7/open/{project}").with(Ex7Controller::open);
        router.POST().route("/7/saveAs/{project}").with(Ex7Controller::saveAs);

PeopleBean.java:

public class PeopleBean implements Serializable {
    public ArrayList<String> people = new ArrayList<>();
}

Ex7Controller.java:

    public Result open(@PathParam("project") String project) {
        ArrayList<String> people = new ArrayList<String>() {{
            add("Ishmael");
            add("Eve");
            add("Ada");
        }};

        PeopleBean bean = new PeopleBean();
        bean.people = people;

        return Results.json().render(bean);
    }

JavaScript:

$.post('${contextPath}/7/open/project1',
    function(people) {
        let msg = '';

        people.forEach(person => {
            msg += person + ',';
        });

        alert(msg);
    },
'json');

警报:Ishmael,Eve,Ada,

另一方面,

JavaScript:

$('#save').on('click', function() {
    $.post('${contextPath}/7/saveAs/project1',
        [
            'Ishmael', 'Eve', 'Ada'
        ]
    );
});

Ex7Controller.java:

    static Logger log = (Logger) LoggerFactory.getLogger(Ex7Controller.class);

    public Result saveAs(@PathParam("project") String project, PeopleBean bean) {
        log.info("people={}", bean.people.size());

        String msg = "";

        for (String person : bean.people) {
            msg += person + ",";
        }

        log.info("{}", msg);

        return Results.json();
    }

日志:people=0

我成功地将一个对象反序列化为一个 JavaBean。我应该怎么做才能将数组反序列化为 Java 数据结构?

标签: javajsonjacksonninjaframework

解决方案


推荐阅读