如何使用Jackson创建这个json字符串?

这是我想要的输出

{"node":{"type":"community","field_incentives":{"und":[{"value":"fun"},{"value":"nice"}]},"field_community_email":{"und":[{"value":"some@one.com"}]}}} 

这是我的代码,但它似乎没有生成上面的输出。 如果有更好更简单的方法,请告诉我。 谢谢

 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); JsonFactory f = new JsonFactory(); JsonGenerator g = f.createJsonGenerator(outputStream); g.writeStartObject(); g.writeObjectFieldStart("node"); g.writeStringField("type", "community"); g.writeObjectFieldStart("field_incentives"); g.writeFieldName("und"); g.writeStartArray(); ???I don't know how to make [{"value":"fun"},{"value":"nice"}] g.writeEndArray(); g.writeEndObject(); g.close(); 

我只是逐行写入您的输出json文件参考JsonGenerator 。 希望它会有所帮助。

 import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonEncoding; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.map.JsonMappingException; public class CopyOfJacksonStreamExample { public static void main(String[] args) { try { JsonFactory jfactory = new JsonFactory(); /*** write to file ***/ JsonGenerator jGenerator = jfactory.createJsonGenerator(new File( "c:\\user.json"), JsonEncoding.UTF8); jGenerator.writeStartObject(); // { jGenerator.writeObjectFieldStart("node"); // node: { jGenerator.writeStringField("type", "community"); // "type" : "community" jGenerator.writeObjectFieldStart("field_incentives"); // "field_incentives" : { jGenerator.writeFieldName("und"); // "und" : jGenerator.writeStartArray(); // [ jGenerator.writeStartObject(); // { jGenerator.writeStringField("value", "fun"); // "value" : "fun" jGenerator.writeStringField("value", "nice"); // "value" : "nice" jGenerator.writeEndObject(); // } jGenerator.writeEndArray(); // ] jGenerator.writeEndObject(); // } end of field_incentives jGenerator.writeObjectFieldStart("field_community_email"); // "field_community_email" : { jGenerator.writeFieldName("und"); // "und" : jGenerator.writeStartArray(); // [ jGenerator.writeStartObject(); // { jGenerator.writeStringField("value", "some@one.com"); // "value" : "fun" jGenerator.writeEndObject(); // } jGenerator.writeEndArray(); // ] jGenerator.writeEndObject(); // } end of field_community_email jGenerator.writeEndObject(); // } end of node jGenerator.writeEndObject(); // } jGenerator.close(); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 

使用POJO
主要

 public class Main { private Node node; // getters/setters 

节点

 public class Node { private String type; private FieldIncentives field_incentives; private FieldIncentives field_community_email; // getters/setters 

FieldIncentives

 public class FieldIncentives { private List und; // getters/setters 

持有人

 public class Holder { private String value; // getters/setters 

用法

 final ObjectMapper o = new ObjectMapper(); final Main m = o.readValue(new File("exampleJson.json"), Main.class);