【问题标题】:Convert Java Array Object to JSON using Jackson使用 Jackson 将 Java 数组对象转换为 JSON
【发布时间】:2012-08-29 23:51:30
【问题描述】:

我需要将 java 数组对象转换为 JSON,我为此使用了 jackson。我只能认为对于每个字段名称,我必须从数组中迭代,这意味着我必须为每个字段迭代相同的数组对象。有什么有效的方法吗?

        JsonGenerator jGenerator = jfactory.createJsonGenerator(out);
        jGenerator.writeStartObject();
        jGenerator.writeFieldName("images");
        jGenerator.writeStartArray();
        for(int i=0; i < topicBean.getTopicVOArray().length; i++){
            jGenerator.writeString(topicBean.getTopicVOArray()[i].getBody());
        }
        for(int i=0; i < topicBean.getTopicVOArray().length; i++){
            jGenerator.writeString(topicBean.getTopicVOArray()[i].getTopicGuid()());
        }

【问题讨论】:

    标签: json jackson


    【解决方案1】:

    取决于您希望生成的 json 的外观。现在你会得到{"images":["bodystring","bodystring","guidstring","guidstring"]},但你也可以得到{"images":["bodystring","guidstring","bodystring","guidstring"]},或者更好的是{"images":[{"body":"bodystring","guid":"guidstring"},{"body":"bodystring","guid":"guidstring"}]}

    第一个解决方案:

    for(int i=0; i < topicBean.getTopicVOArray().length; i++){
        jGenerator.writeString(topicBean.getTopicVOArray()[i].getBody());
        jGenerator.writeString(topicBean.getTopicVOArray()[i].getTopicGuid()());
    }
    

    第二种解决方案(对象包装器):

    for(int i=0; i < topicBean.getTopicVOArray().length; i++){
        jGenerator.writeStartObject();
        jGenerator.writeFieldName("body");
        jGenerator.writeString(topicBean.getTopicVOArray()[i].getBody());
        jGenerator.writeFieldName("guid");
        jGenerator.writeString(topicBean.getTopicVOArray()[i].getTopicGuid()());
        jGenerator.writeEndObject();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      相关资源
      最近更新 更多