From c5c19407535a508fccdbf2de00968d1c29e87af2 Mon Sep 17 00:00:00 2001 From: sxyx2008 Date: Wed, 9 Jul 2014 14:01:29 +0800 Subject: [PATCH] json tutorials --- json-tutorials/json-fastjson-example/pom.xml | 33 ++++++++ .../json/fastjson/example/FastjsonDecode.java | 22 ++++++ .../json/fastjson/example/FastjsonEncode.java | 30 +++++++ .../java/org/json/fastjson/example/Group.java | 36 +++++++++ .../java/org/json/fastjson/example/User.java | 24 ++++++ json-tutorials/json-gson-example/pom.xml | 34 ++++++++ .../org/json/gson/example/DataObject.java | 51 ++++++++++++ .../java/org/json/gson/example/Gson2Json.java | 34 ++++++++ .../org/json/gson/example/GsonFromJson.java | 24 ++++++ .../gson/example/GsonStreamReaderExample.java | 57 ++++++++++++++ .../gson/example/GsonStreamWriterExample.java | 38 +++++++++ .../src/main/resources/file.json | 9 +++ .../src/main/resources/user.json | 1 + json-tutorials/json-jackson-example/pom.xml | 40 ++++++++++ .../example/JacksonGeneratorExample.java | 49 ++++++++++++ .../jackson/example/JacksonParserExample.java | 78 +++++++++++++++++++ .../json/jackson/example/JacksonTreeNode.java | 64 +++++++++++++++ .../org/json/jackson/example/Json2Object.java | 41 ++++++++++ .../json/jackson/example/JsonFile2Map.java | 40 ++++++++++ .../json/jackson/example/JsonString2Map.java | 29 +++++++ .../json/jackson/example/Map2JsonFile.java | 36 +++++++++ .../json/jackson/example/Map2JsonString.java | 31 ++++++++ .../org/json/jackson/example/Object2Json.java | 41 ++++++++++ .../java/org/json/jackson/example/User.java | 51 ++++++++++++ .../src/main/resources/user.json | 1 + .../json-json-simple-example/pom.xml | 33 ++++++++ .../simple/example/JsonSimpleReadExample.java | 47 +++++++++++ .../example/JsonSimpleWriteExample.java | 39 ++++++++++ .../src/main/resources/test.json | 1 + json-tutorials/pom.xml | 18 +++++ pom.xml | 1 + xml-tutorials/pom.xml | 39 +++++----- 32 files changed, 1053 insertions(+), 19 deletions(-) create mode 100644 json-tutorials/json-fastjson-example/pom.xml create mode 100644 json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/FastjsonDecode.java create mode 100644 json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/FastjsonEncode.java create mode 100644 json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/Group.java create mode 100644 json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/User.java create mode 100644 json-tutorials/json-gson-example/pom.xml create mode 100644 json-tutorials/json-gson-example/src/main/java/org/json/gson/example/DataObject.java create mode 100644 json-tutorials/json-gson-example/src/main/java/org/json/gson/example/Gson2Json.java create mode 100644 json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonFromJson.java create mode 100644 json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonStreamReaderExample.java create mode 100644 json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonStreamWriterExample.java create mode 100644 json-tutorials/json-gson-example/src/main/resources/file.json create mode 100644 json-tutorials/json-gson-example/src/main/resources/user.json create mode 100644 json-tutorials/json-jackson-example/pom.xml create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonGeneratorExample.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonParserExample.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonTreeNode.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Json2Object.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JsonFile2Map.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JsonString2Map.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Map2JsonFile.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Map2JsonString.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Object2Json.java create mode 100644 json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/User.java create mode 100644 json-tutorials/json-jackson-example/src/main/resources/user.json create mode 100644 json-tutorials/json-json-simple-example/pom.xml create mode 100644 json-tutorials/json-json-simple-example/src/main/java/org/json/json/simple/example/JsonSimpleReadExample.java create mode 100644 json-tutorials/json-json-simple-example/src/main/java/org/json/json/simple/example/JsonSimpleWriteExample.java create mode 100644 json-tutorials/json-json-simple-example/src/main/resources/test.json create mode 100644 json-tutorials/pom.xml diff --git a/json-tutorials/json-fastjson-example/pom.xml b/json-tutorials/json-fastjson-example/pom.xml new file mode 100644 index 0000000..785685c --- /dev/null +++ b/json-tutorials/json-fastjson-example/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + net.aimeizi + json-tutorials + 1.0.0 + + json-fastjson-example + jar + json-fastjson-example + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + com.alibaba + fastjson + 1.1.36 + + + diff --git a/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/FastjsonDecode.java b/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/FastjsonDecode.java new file mode 100644 index 0000000..3ae28b9 --- /dev/null +++ b/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/FastjsonDecode.java @@ -0,0 +1,22 @@ +package org.json.fastjson.example; + +import java.util.List; + +import com.alibaba.fastjson.JSON; + +public class FastjsonDecode { + + public static void main(String[] args) { + String jsonString = "{\"id\":0,\"name\":\"admin\",\"users\":[{\"id\":2,\"name\":\"guest\"},{\"id\":3,\"name\":\"root\"}]}"; + Group group = JSON.parseObject(jsonString, Group.class); + + System.out.println(group.getId()); + System.out.println(group.getName()); + List users = group.getUsers(); + for (User user : users) { + System.out.println(user.getId()+"\t"+user.getName()); + } + + } + +} diff --git a/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/FastjsonEncode.java b/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/FastjsonEncode.java new file mode 100644 index 0000000..7e0955e --- /dev/null +++ b/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/FastjsonEncode.java @@ -0,0 +1,30 @@ +package org.json.fastjson.example; + +import com.alibaba.fastjson.JSON; + +public class FastjsonEncode { + + public static void main(String[] args) { + + Group group = new Group(); + group.setId(0L); + group.setName("admin"); + + User guestUser = new User(); + guestUser.setId(2L); + guestUser.setName("guest"); + + User rootUser = new User(); + rootUser.setId(3L); + rootUser.setName("root"); + + group.getUsers().add(guestUser); + group.getUsers().add(rootUser); + + String jsonString = JSON.toJSONString(group); + + System.out.println(jsonString); + + } + +} diff --git a/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/Group.java b/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/Group.java new file mode 100644 index 0000000..78d1764 --- /dev/null +++ b/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/Group.java @@ -0,0 +1,36 @@ +package org.json.fastjson.example; + +import java.util.ArrayList; +import java.util.List; + +public class Group { + + private Long id; + private String name; + private List users = new ArrayList(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getUsers() { + return users; + } + + public void setUsers(List users) { + this.users = users; + } + +} diff --git a/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/User.java b/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/User.java new file mode 100644 index 0000000..cd48317 --- /dev/null +++ b/json-tutorials/json-fastjson-example/src/main/java/org/json/fastjson/example/User.java @@ -0,0 +1,24 @@ +package org.json.fastjson.example; + +public class User { + + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/json-tutorials/json-gson-example/pom.xml b/json-tutorials/json-gson-example/pom.xml new file mode 100644 index 0000000..f69fe91 --- /dev/null +++ b/json-tutorials/json-gson-example/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + net.aimeizi + json-tutorials + 1.0.0 + + json-gson-example + jar + json-gson-example + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 4.6 + test + + + com.google.code.gson + gson + 1.7.1 + + + + diff --git a/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/DataObject.java b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/DataObject.java new file mode 100644 index 0000000..5e926f6 --- /dev/null +++ b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/DataObject.java @@ -0,0 +1,51 @@ +package org.json.gson.example; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings("serial") +public class DataObject implements Serializable{ + + private int data1 = 100; + private String data2 = "hello"; + + private List list = new ArrayList() { + { + add("String 1"); + add("String 2"); + add("String 3"); + } + }; + + @Override + public String toString() { + return "DataObject [data1=" + data1 + ", data2=" + data2 + ", list=" + + list + "]"; + } + + public int getData1() { + return data1; + } + + public void setData1(int data1) { + this.data1 = data1; + } + + public String getData2() { + return data2; + } + + public void setData2(String data2) { + this.data2 = data2; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + +} diff --git a/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/Gson2Json.java b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/Gson2Json.java new file mode 100644 index 0000000..b2b6c12 --- /dev/null +++ b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/Gson2Json.java @@ -0,0 +1,34 @@ +package org.json.gson.example; + +import java.io.FileWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +public class Gson2Json { + + public static void main(String[] args) { + + DataObject obj = new DataObject(); + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + // convert java object to JSON format, + // and returned as JSON formatted string + String json = gson.toJson(obj); + + try { + //write converted json data to a file named "file.json" + FileWriter writer = new FileWriter("src/main/resources/file.json"); + writer.write(json); + writer.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + + System.out.println(json); + + } + +} diff --git a/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonFromJson.java b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonFromJson.java new file mode 100644 index 0000000..6054130 --- /dev/null +++ b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonFromJson.java @@ -0,0 +1,24 @@ +package org.json.gson.example; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +public class GsonFromJson { + + public static void main(String[] args) { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + try { + BufferedReader br = new BufferedReader(new FileReader("src/main/resources/file.json")); + // convert the json string back to object + DataObject obj = gson.fromJson(br, DataObject.class); + System.out.println(obj); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonStreamReaderExample.java b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonStreamReaderExample.java new file mode 100644 index 0000000..35ece76 --- /dev/null +++ b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonStreamReaderExample.java @@ -0,0 +1,57 @@ +package org.json.gson.example; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; + +import com.google.gson.stream.JsonReader; + +public class GsonStreamReaderExample { + + public static void main(String[] args) { + + try { + JsonReader reader = new JsonReader(new FileReader("src/main/resources/user.json")); + + reader.beginObject(); + + while (reader.hasNext()) { + + String name = reader.nextName(); + + if (name.equals("name")) { + + System.out.println(reader.nextString()); + + } else if (name.equals("age")) { + + System.out.println(reader.nextInt()); + + } else if (name.equals("messages")) { + + // read array + reader.beginArray(); + + while (reader.hasNext()) { + System.out.println(reader.nextString()); + } + + reader.endArray(); + + } else { + reader.skipValue(); // avoid some unhandle events + } + } + + reader.endObject(); + reader.close(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + +} diff --git a/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonStreamWriterExample.java b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonStreamWriterExample.java new file mode 100644 index 0000000..a592d7d --- /dev/null +++ b/json-tutorials/json-gson-example/src/main/java/org/json/gson/example/GsonStreamWriterExample.java @@ -0,0 +1,38 @@ +package org.json.gson.example; + +import java.io.FileWriter; +import java.io.IOException; + +import com.google.gson.stream.JsonWriter; + +public class GsonStreamWriterExample { + + public static void main(String[] args) { + + JsonWriter writer; + try { + writer = new JsonWriter(new FileWriter("src/main/resources/user.json")); + + writer.beginObject(); // { + writer.name("name").value("mkyong"); // "name" : "mkyong" + writer.name("age").value(29); // "age" : 29 + + writer.name("messages"); // "messages" : + writer.beginArray(); // [ + writer.value("msg 1"); // "msg 1" + writer.value("msg 2"); // "msg 2" + writer.value("msg 3"); // "msg 3" + writer.endArray(); // ] + + writer.endObject(); // } + + writer.close(); + + System.out.println("Done"); + + } catch (IOException e) { + e.printStackTrace(); + } + + } +} diff --git a/json-tutorials/json-gson-example/src/main/resources/file.json b/json-tutorials/json-gson-example/src/main/resources/file.json new file mode 100644 index 0000000..32dbe08 --- /dev/null +++ b/json-tutorials/json-gson-example/src/main/resources/file.json @@ -0,0 +1,9 @@ +{ + "data1": 100, + "data2": "hello", + "list": [ + "String 1", + "String 2", + "String 3" + ] +} \ No newline at end of file diff --git a/json-tutorials/json-gson-example/src/main/resources/user.json b/json-tutorials/json-gson-example/src/main/resources/user.json new file mode 100644 index 0000000..ec904ed --- /dev/null +++ b/json-tutorials/json-gson-example/src/main/resources/user.json @@ -0,0 +1 @@ +{"name":"mkyong","age":29,"messages":["msg 1","msg 2","msg 3"]} \ No newline at end of file diff --git a/json-tutorials/json-jackson-example/pom.xml b/json-tutorials/json-jackson-example/pom.xml new file mode 100644 index 0000000..47dc080 --- /dev/null +++ b/json-tutorials/json-jackson-example/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + net.aimeizi + json-tutorials + 1.0.0 + + json-jackson-example + jar + json-jackson-example + http://maven.apache.org + + + UTF-8 + + + + + codehaus + http://repository.codehaus.org/org/codehaus + + + + + + junit + junit + 4.6 + test + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.9 + + + diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonGeneratorExample.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonGeneratorExample.java new file mode 100644 index 0000000..2357d8f --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonGeneratorExample.java @@ -0,0 +1,49 @@ +package org.json.jackson.example; + +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 JacksonGeneratorExample { + + public static void main(String[] args) { + + try { + + JsonFactory jfactory = new JsonFactory(); + + /*** write to file ***/ + JsonGenerator jGenerator = jfactory.createJsonGenerator(new File("src/main/resources/user.json"), JsonEncoding.UTF8); + jGenerator.writeStartObject(); // { + + jGenerator.writeStringField("name", "mkyong"); // "name" : "mkyong" + jGenerator.writeNumberField("age", 29); // "age" : 29 + + jGenerator.writeFieldName("messages"); // "messages" : + jGenerator.writeStartArray(); // [ + + jGenerator.writeString("msg 1"); // "msg 1" + jGenerator.writeString("msg 2"); // "msg 2" + jGenerator.writeString("msg 3"); // "msg 3" + + jGenerator.writeEndArray(); // ] + + jGenerator.writeEndObject(); // } + + jGenerator.close(); + + } catch (JsonGenerationException e) { + e.printStackTrace(); + } catch (JsonMappingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonParserExample.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonParserExample.java new file mode 100644 index 0000000..d7176e8 --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonParserExample.java @@ -0,0 +1,78 @@ +package org.json.jackson.example; + +import java.io.File; +import java.io.IOException; + +import org.codehaus.jackson.JsonFactory; +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.JsonParser; +import org.codehaus.jackson.JsonToken; +import org.codehaus.jackson.map.JsonMappingException; + +public class JacksonParserExample { + + public static void main(String[] args) { + + try { + + JsonFactory jfactory = new JsonFactory(); + + /*** read from file ***/ + JsonParser jParser = jfactory.createJsonParser(new File("src/main/resources/user.json")); + + // loop until token equal to "}" + while (jParser.nextToken() != JsonToken.END_OBJECT) { + + String fieldname = jParser.getCurrentName(); + if ("name".equals(fieldname)) { + + // current token is "name", + // move to next, which is "name"'s value + jParser.nextToken(); + System.out.println(jParser.getText()); // display mkyong + + } + + if ("age".equals(fieldname)) { + + // current token is "age", + // move to next, which is "name"'s value + jParser.nextToken(); + System.out.println(jParser.getIntValue()); // display 29 + + } + + if ("messages".equals(fieldname)) { + + jParser.nextToken(); // current token is "[", move next + + // messages is array, loop until token equal to "]" + while (jParser.nextToken() != JsonToken.END_ARRAY) { + + // display msg1, msg2, msg3 + System.out.println(jParser.getText()); + + } + + } + + } + jParser.close(); + + } catch (JsonGenerationException e) { + + e.printStackTrace(); + + } catch (JsonMappingException e) { + + e.printStackTrace(); + + } catch (IOException e) { + + e.printStackTrace(); + + } + + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonTreeNode.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonTreeNode.java new file mode 100644 index 0000000..f8f0a73 --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JacksonTreeNode.java @@ -0,0 +1,64 @@ +package org.json.jackson.example; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.Iterator; + +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.JsonNode; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.node.ObjectNode; + +public class JacksonTreeNode { + + public static void main(String[] args) { + + ObjectMapper mapper = new ObjectMapper(); + + try { + + BufferedReader fileReader = new BufferedReader(new FileReader("src/main/resources/user.json")); + JsonNode rootNode = mapper.readTree(fileReader); + + /*** read ***/ + JsonNode nameNode = rootNode.path("name"); + System.out.println(nameNode.getTextValue()); + + JsonNode ageNode = rootNode.path("age"); + System.out.println(ageNode.getIntValue()); + + JsonNode msgNode = rootNode.path("messages"); + Iterator ite = msgNode.getElements(); + + while (ite.hasNext()) { + JsonNode temp = ite.next(); + System.out.println(temp.getTextValue()); + } + + /*** update ***/ + ((ObjectNode) rootNode).put("nickname", "new nickname"); + ((ObjectNode) rootNode).put("name", "updated name"); + ((ObjectNode) rootNode).remove("age"); + + mapper.writerWithDefaultPrettyPrinter().writeValue(new File("target/user.json"), rootNode); + + } catch (JsonGenerationException e) { + + e.printStackTrace(); + + } catch (JsonMappingException e) { + + e.printStackTrace(); + + } catch (IOException e) { + + e.printStackTrace(); + + } + + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Json2Object.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Json2Object.java new file mode 100644 index 0000000..2a3e4a2 --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Json2Object.java @@ -0,0 +1,41 @@ +package org.json.jackson.example; + +import java.io.IOException; + +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; + +public class Json2Object { + + /** + * @param args + */ + public static void main(String[] args) { + + ObjectMapper mapper = new ObjectMapper(); + + try { + + // read from file, convert it to user class + User user = mapper.readValue(ClassLoader.getSystemResourceAsStream("user.json"), User.class); + + // display to console + System.out.println(user); + + } catch (JsonGenerationException e) { + + e.printStackTrace(); + + } catch (JsonMappingException e) { + + e.printStackTrace(); + + } catch (IOException e) { + + e.printStackTrace(); + + } + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JsonFile2Map.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JsonFile2Map.java new file mode 100644 index 0000000..5571464 --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JsonFile2Map.java @@ -0,0 +1,40 @@ +package org.json.jackson.example; + +import java.io.File; +import java.util.ArrayList; +import java.util.Map; + +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.type.TypeReference; + +public class JsonFile2Map { + + public static void main(String[] args) { + + try { + + ObjectMapper mapper = new ObjectMapper(); + + // read JSON from a file + Map map = mapper.readValue( + new File("src/main/resources/user.json"), + new TypeReference>() { + }); + + System.out.println(map.get("name")); + System.out.println(map.get("age")); + + @SuppressWarnings("unchecked") + ArrayList list = (ArrayList) map.get("messages"); + + for (String msg : list) { + System.out.println(msg); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JsonString2Map.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JsonString2Map.java new file mode 100644 index 0000000..b8eb09e --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/JsonString2Map.java @@ -0,0 +1,29 @@ +package org.json.jackson.example; + +import java.util.HashMap; +import java.util.Map; + +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.type.TypeReference; + +public class JsonString2Map { + + public static void main(String[] args) { + String json = "{\"name\":\"mkyong\", \"age\":\"29\"}"; + + Map map = new HashMap(); + ObjectMapper mapper = new ObjectMapper(); + + try { + + // convert JSON string to Map + map = mapper.readValue(json,new TypeReference>() {}); + + System.out.println(map); + + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Map2JsonFile.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Map2JsonFile.java new file mode 100644 index 0000000..acc8cda --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Map2JsonFile.java @@ -0,0 +1,36 @@ +package org.json.jackson.example; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.codehaus.jackson.map.ObjectMapper; + +public class Map2JsonFile { + + public static void main(String[] args) { + ObjectMapper mapper = new ObjectMapper(); + + Map map = new HashMap(); + map.put("name", "mkyong"); + map.put("age", 29); + + List list = new ArrayList(); + list.add("msg 1"); + list.add("msg 2"); + list.add("msg 3"); + + map.put("messages", list); + + try { + + mapper.writerWithDefaultPrettyPrinter().writeValue(new File("src/main/resources/user.json"), map); + + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Map2JsonString.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Map2JsonString.java new file mode 100644 index 0000000..c3af354 --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Map2JsonString.java @@ -0,0 +1,31 @@ +package org.json.jackson.example; + +import java.util.HashMap; +import java.util.Map; + +import org.codehaus.jackson.map.ObjectMapper; + +public class Map2JsonString { + + public static void main(String[] args) { + try { + + ObjectMapper mapper = new ObjectMapper(); + String json = ""; + + Map map = new HashMap(); + map.put("name", "mkyong"); + map.put("age", "29"); + + //convert map to JSON string + json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map); + + System.out.println(json); + + } catch (Exception e) { + e.printStackTrace(); + } + + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Object2Json.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Object2Json.java new file mode 100644 index 0000000..4936098 --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/Object2Json.java @@ -0,0 +1,41 @@ +package org.json.jackson.example; + +import java.io.File; +import java.io.IOException; + +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; + +public class Object2Json { + + public static void main(String[] args) { + + User user = new User(); + ObjectMapper mapper = new ObjectMapper(); + + try { + + // convert user object to json string, and save to a file + mapper.writerWithDefaultPrettyPrinter().writeValue(new File("src/main/resources/user.json"), user); + + // display to console + System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user)); + + } catch (JsonGenerationException e) { + + e.printStackTrace(); + + } catch (JsonMappingException e) { + + e.printStackTrace(); + + } catch (IOException e) { + + e.printStackTrace(); + + } + + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/User.java b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/User.java new file mode 100644 index 0000000..3c597f8 --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/java/org/json/jackson/example/User.java @@ -0,0 +1,51 @@ +package org.json.jackson.example; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings("serial") +public class User implements Serializable{ + + private int age = 29; + private String name = "mkyong"; + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getMessages() { + return messages; + } + + public void setMessages(List messages) { + this.messages = messages; + } + + private List messages = new ArrayList() { + { + add("msg 1"); + add("msg 2"); + add("msg 3"); + } + }; + + @Override + public String toString() { + return "User [age=" + age + ", name=" + name + ", " + + "messages=" + messages + "]"; + } + +} diff --git a/json-tutorials/json-jackson-example/src/main/resources/user.json b/json-tutorials/json-jackson-example/src/main/resources/user.json new file mode 100644 index 0000000..ec904ed --- /dev/null +++ b/json-tutorials/json-jackson-example/src/main/resources/user.json @@ -0,0 +1 @@ +{"name":"mkyong","age":29,"messages":["msg 1","msg 2","msg 3"]} \ No newline at end of file diff --git a/json-tutorials/json-json-simple-example/pom.xml b/json-tutorials/json-json-simple-example/pom.xml new file mode 100644 index 0000000..267bb4a --- /dev/null +++ b/json-tutorials/json-json-simple-example/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + net.aimeizi + json-tutorials + 1.0.0 + + json-json-simple-example + jar + json-json-simple-example + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 4.6 + test + + + com.googlecode.json-simple + json-simple + 1.1 + + + diff --git a/json-tutorials/json-json-simple-example/src/main/java/org/json/json/simple/example/JsonSimpleReadExample.java b/json-tutorials/json-json-simple-example/src/main/java/org/json/json/simple/example/JsonSimpleReadExample.java new file mode 100644 index 0000000..42b7a52 --- /dev/null +++ b/json-tutorials/json-json-simple-example/src/main/java/org/json/json/simple/example/JsonSimpleReadExample.java @@ -0,0 +1,47 @@ +package org.json.json.simple.example; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.Iterator; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +public class JsonSimpleReadExample { + + @SuppressWarnings("unchecked") + public static void main(String[] args) { + JSONParser parser = new JSONParser(); + + try { + + Object obj = parser.parse(new FileReader("src/main/resources/test.json")); + + JSONObject jsonObject = (JSONObject) obj; + + String name = (String) jsonObject.get("name"); + System.out.println(name); + + long age = (Long) jsonObject.get("age"); + System.out.println(age); + + // loop array + JSONArray msg = (JSONArray) jsonObject.get("messages"); + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) { + System.out.println(iterator.next()); + } + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } + + } +} diff --git a/json-tutorials/json-json-simple-example/src/main/java/org/json/json/simple/example/JsonSimpleWriteExample.java b/json-tutorials/json-json-simple-example/src/main/java/org/json/json/simple/example/JsonSimpleWriteExample.java new file mode 100644 index 0000000..f6fa6b5 --- /dev/null +++ b/json-tutorials/json-json-simple-example/src/main/java/org/json/json/simple/example/JsonSimpleWriteExample.java @@ -0,0 +1,39 @@ +package org.json.json.simple.example; + +import java.io.FileWriter; +import java.io.IOException; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; + +public class JsonSimpleWriteExample { + + @SuppressWarnings("unchecked") + public static void main(String[] args) { + + JSONObject obj = new JSONObject(); + obj.put("name", "mkyong.com"); + obj.put("age", new Integer(100)); + + JSONArray list = new JSONArray(); + list.add("msg 1"); + list.add("msg 2"); + list.add("msg 3"); + + obj.put("messages", list); + + try { + + FileWriter file = new FileWriter("src/main/resources/test.json"); + file.write(obj.toJSONString()); + file.flush(); + file.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + + System.out.print(obj); + + } +} diff --git a/json-tutorials/json-json-simple-example/src/main/resources/test.json b/json-tutorials/json-json-simple-example/src/main/resources/test.json new file mode 100644 index 0000000..92d3f9d --- /dev/null +++ b/json-tutorials/json-json-simple-example/src/main/resources/test.json @@ -0,0 +1 @@ +{"age":100,"name":"mkyong.com","messages":["msg 1","msg 2","msg 3"]} \ No newline at end of file diff --git a/json-tutorials/pom.xml b/json-tutorials/pom.xml new file mode 100644 index 0000000..d90d6d3 --- /dev/null +++ b/json-tutorials/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + net.aimeizi + maven-framework-project + 1.0.0 + + json-tutorials + pom + + json-jackson-example + json-gson-example + json-json-simple-example + json-fastjson-example + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index f2d0360..78f23c6 100644 --- a/pom.xml +++ b/pom.xml @@ -76,6 +76,7 @@ spring-mongodb-tutorial spring-security-tutorial xml-tutorials + json-tutorials diff --git a/xml-tutorials/pom.xml b/xml-tutorials/pom.xml index 724915a..342e0db 100644 --- a/xml-tutorials/pom.xml +++ b/xml-tutorials/pom.xml @@ -1,21 +1,22 @@ - - 4.0.0 - - net.aimeizi - maven-framework-project - 1.0.0 - - xml-tutorials - pom - - xml-stax-example - xml-xom-example - xml-xstream-example - xml-jaxb-example - xml-sax-example - xml-xmlpull-example - xml-dom-example - xml-2-properties - + + 4.0.0 + + net.aimeizi + maven-framework-project + 1.0.0 + + xml-tutorials + pom + + xml-stax-example + xml-xom-example + xml-xstream-example + xml-jaxb-example + xml-sax-example + xml-xmlpull-example + xml-dom-example + xml-2-properties + \ No newline at end of file