0

我正在尝试调用假设以 JSON 格式发送数据作为响应的 servlet。我为此使用 JACKSON 库,jfactory.createJsonGenerator(file);如果我使用除此之外的其他方法,我可以将输出写入文件。如果我在这里遗漏了什么,请告诉我。

来自 servlet 的 doGet 方法

JsonFactory jfactory = new JsonFactory();
        /*** write to file ***/

        try {
            out = response.getWriter();
            JsonGenerator jGenerator = jfactory.createJsonGenerator(out);
            jGenerator.writeStartObject(); // {
            jGenerator.writeStringField("title", title); // "title" : title
            jGenerator.writeStringField("Description", desc); // "desc" : Description
            jGenerator.writeFieldName("images");
            jGenerator.writeStartArray(); // [
         for(String img: imageArray){
            jGenerator.writeString(img); // "msg 1"
         }
         jGenerator.writeEndArray(); // ]
            jGenerator.writeEndObject(); // }
         //jGenerator.close();
         out.flush();
         System.out.println(jGenerator.getOutputContext().toString());

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

网页

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $.getJSON("http://localhost:8080/JsoupPrj/JasonGen",function(data){
    $("#content").html(data);
    $('.log').html('it is called');
        });
    });
</script>

</head>
<body>
<div id="content"></div>
<div class="log"></div>
4

1 回答 1

0

这可能为时已晚。但我想我会分享我的经验,以防它对某人有所帮助。

这是我的 pom.xml 的示例:

    <dependency>
        <groupId> org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.12</version>
    </dependency>

这是我的 servlet 中的内容:

    List<String> ooErrors = new ArrayList<String>();
    //serialize the errors object. 
    ObjectMapper mapper = new ObjectMapper();
    String errorsJson = mapper.writeValueAsString(ooErrors);        
    response.setContentType("application/json");
    response.getOutputStream().print(errorsJson);

希望这可以帮助某人。

于 2013-03-05T00:40:46.363 回答