How to create this json string using Jackson?

Here is my desired result

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

Here is my code, but it does not seem to generate the result above. If there is a better and easier way to do this, please let me know. Thanks

 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(); 
+8
java json jackson
source share
2 answers

I just write line by line in your json link output JsonGenerator link . Hope this helps.

 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(); } } } 
+9
source share

Using POJO
the main

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

Node

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

Fieldincentives

 public class FieldIncentives { private List<Holder> und; // getters/setters 

Holder

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

Using

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

All Articles