设置JSON生成器的字符串列表

时间:2019-06-24 10:00:34

标签: java json

我想通过JSON生成器为JSON对象设置字符串列表。

我尝试了以下代码,但没有用,并给出了错误。

    List<String> urls = new ArrayList<>();
    urls.add("url1");
    urls.add("url2");
    JsonFactory factory = new JsonFactory();
    StringWriter writer = new StringWriter();
    JsonGenerator generator = factory.createGenerator(writer);
    generator.writeStartObject();
    generator.writeStringField("firstname", "myname"); 
    generator.writeObjectField("urls", urls);
    generator.writeEndObject();
    generator.close();
    writer.close();
    String jsonData = writer.toString();

发生以下错误

  

java.lang.IllegalStateException:没有为   生成器,只能序列化简单的包装器类型(传递的类型   java.util.ArrayList)   com.fasterxml.jackson.core.JsonGenerator._writeSimpleObject(JsonGenerator.java:1725)     在   com.fasterxml.jackson.core.base.GeneratorBase.writeObject(GeneratorBase.java:327)     在   com.fasterxml.jackson.core.JsonGenerator.writeObjectField(JsonGenerator.java:1415)

1 个答案:

答案 0 :(得分:0)

您需要在JsonGenerator中设置ObjectCodec。

generator.setCodec(new ObjectMapper());

由于ObjectMapper对象是从ObjectCodec扩展而来的,因此可以将其用作ObjectCodec