Advertisement
ridjis

DemoJackson

Mar 2nd, 2016
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.72 KB | None | 0 0
  1. package beans;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import java.util.Iterator;
  7. import java.util.LinkedHashMap;
  8. import java.util.Map;
  9.  
  10. import com.fasterxml.jackson.core.JsonEncoding;
  11. import com.fasterxml.jackson.core.JsonFactory;
  12. import com.fasterxml.jackson.core.JsonGenerator;
  13. import com.fasterxml.jackson.core.JsonParser;
  14. import com.fasterxml.jackson.core.JsonToken;
  15. import com.fasterxml.jackson.databind.JsonNode;
  16. import com.fasterxml.jackson.databind.ObjectMapper;
  17. import com.fasterxml.jackson.databind.node.ArrayNode;
  18. import com.fasterxml.jackson.databind.node.ObjectNode;
  19.  
  20. public class DemoJackson {
  21.     @SuppressWarnings({ "unchecked", "rawtypes" })
  22.     public static void testDataBinding() {
  23.         ObjectMapper om = new ObjectMapper();
  24.         Map<String, Object> studentDataMap = new LinkedHashMap<String, Object>();
  25.        
  26.         Student stud = new Student();
  27.         stud.setName("Dusko");
  28.         stud.setAge(21);
  29.        
  30.         studentDataMap.put("student", stud);
  31.         studentDataMap.put("faculty", "PMF");
  32.         int[] marks = {9, 10, 10};
  33.         studentDataMap.put("marks", marks);
  34.         studentDataMap.put("verified", Boolean.FALSE);
  35.        
  36.         try {
  37.             om.writeValue(new File("student1.json"), studentDataMap);
  38.         } catch (IOException e) {
  39.             e.printStackTrace();
  40.         }
  41.        
  42.         try {
  43.             LinkedHashMap<Student, Object> studentDataMapRead = om.readValue(new File("student1.json"), LinkedHashMap.class);
  44.             LinkedHashMap<String, Object> studRead = (LinkedHashMap) studentDataMapRead.get("student");
  45.             System.out.println(studRead.get("name") + " " + studRead.get("age"));
  46.             System.out.println(studentDataMapRead.get("faculty") + " " + studentDataMapRead.get("verified"));
  47.             ArrayList<Integer> marksRead = (ArrayList<Integer>) studentDataMapRead.get("marks");
  48.             for (int i = 0; i < marksRead.size(); i++)
  49.                 System.out.println(marksRead.get(i) + " ");
  50.             System.out.println();
  51.         } catch (Exception e) {
  52.             e.printStackTrace();
  53.         }
  54.     }
  55.    
  56.     @SuppressWarnings("rawtypes")
  57.     private static void testTreeMode() {
  58.         ObjectMapper om = new ObjectMapper();
  59.         String json = ("{\"student\": {\"name\": \"Dusko\", \"age\": 25}, \"faculty\":\"PMF\", \"marks\": [9, 10, 10], \"verified\": false}");
  60.         JsonNode root;
  61.        
  62.         try {
  63.             root = om.readTree(json);
  64.             JsonNode student = root.path("student");
  65.             String name = student.path("name").asText();
  66.             int age = student.path("age").asInt();
  67.             String faculty = root.path("faculty").asText();
  68.             boolean verified = root.path("verified").asBoolean();
  69.             JsonNode marks = root.path("marks");
  70.             Iterator i = (Iterator) marks.elements();
  71.            
  72.             System.out.printf("%s %d %s %b\n", name, age, faculty, verified);
  73.            
  74.             while (i.hasNext())
  75.                 System.out.println(i.next());
  76.                
  77.         } catch (IOException e) {
  78.             e.printStackTrace();
  79.         }
  80.        
  81.         JsonNode rootWrite = om.createObjectNode();
  82.         JsonNode marksNodeWrite = om.createArrayNode();
  83.         ((ArrayNode) marksNodeWrite).add(10);
  84.         ((ArrayNode) marksNodeWrite).add(10);
  85.         ((ArrayNode) marksNodeWrite).add(10);
  86.        
  87.         JsonNode studNode = om.createObjectNode();
  88.         ((ObjectNode) studNode).put("name", "Dusko");
  89.         ((ObjectNode) studNode).put("age", 21);
  90.        
  91.         ((ObjectNode)rootWrite).set("student", studNode);
  92.         ((ObjectNode)rootWrite).put("faculty", "PMF");
  93.         ((ObjectNode)rootWrite).put("verified", Boolean.FALSE);
  94.         ((ObjectNode)rootWrite).set("marks", marksNodeWrite);
  95.        
  96.         try {
  97.             om.writeValue(new File("student2.json"), rootWrite);
  98.         } catch (IOException e) {
  99.             e.printStackTrace();
  100.         }
  101.     }
  102.    
  103.     public static void testStreamingMode() {
  104.         JsonFactory factory = new JsonFactory();
  105.         JsonGenerator generator;
  106.        
  107.         try {
  108.             generator = factory.createGenerator(new File("student3.json"), JsonEncoding.UTF8);
  109.             generator.writeStartObject();
  110.             generator.writeStringField("name", "Dusko");
  111.             generator.writeNumberField("age", 21);
  112.             generator.writeStringField("faculty", "PMF");
  113.             generator.writeBooleanField("verified", Boolean.FALSE);
  114.            
  115.             generator.writeFieldName("marks");
  116.             generator.writeStartArray();
  117.                 generator.writeNumber(10);
  118.                 generator.writeNumber(10);
  119.                 generator.writeNumber(10);
  120.             generator.writeEndArray();
  121.            
  122.             generator.writeEndObject();        
  123.             generator.close();
  124.         } catch (IOException e) {
  125.             e.printStackTrace();
  126.         }
  127.        
  128.         JsonParser parser;
  129.         try {
  130.             parser = factory.createParser(new File("student3.json"));
  131.             while (parser.nextToken() != JsonToken.END_OBJECT) {
  132.                 String fieldName = parser.getCurrentName();
  133.                 if ("name".equals(fieldName)) {
  134.                     parser.nextToken();
  135.                     System.out.println(parser.getText());
  136.                 }
  137.             }
  138.         } catch (IOException e) {
  139.             e.printStackTrace();
  140.         }
  141.     }
  142.    
  143.     public static void main(String[] args) {
  144. //      testDataBinding();
  145. //      testTreeMode();
  146.         testStreamingMode();
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement