Skip to content

Commit cfcbd48

Browse files
committed
jackson
jackson
1 parent 0393956 commit cfcbd48

File tree

6 files changed

+221
-0
lines changed

6 files changed

+221
-0
lines changed

jackson-json-java/.classpath

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
4+
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
5+
<classpathentry kind="output" path="target/classes"/>
6+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
7+
<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.jar"/>
8+
<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.jar"/>
9+
<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.jar"/>
10+
</classpath>

jackson-json-java/article.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{"title":"Jackson - Java to JSON & JSON to Java",
2+
"categories":["Java"],
3+
"address":"http://hmkcode.com/jackson-java-json"}

jackson-json-java/articles.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"title":"Jackson - Java to JSON & JSON to Java","url":"http://hmkcode.com/jackson-java-json","categories":["Java"],"tags":["Java","Jackson","JSON"]},{"title":"Jackson - Java to JSON & JSON to Java","url":"http://hmkcode.com/jackson-java-json","categories":["Java"],"tags":["Java","Jackson","JSON"]}]

jackson-json-java/pom.xml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<groupId>com.hmkcode</groupId>
6+
<artifactId>jackson-json-java</artifactId>
7+
<version>1.0-SNAPSHOT</version>
8+
<packaging>jar</packaging>
9+
10+
<name>jackson-json-java</name>
11+
<url>http://maven.apache.org</url>
12+
13+
<properties>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
</properties>
16+
17+
<dependencies>
18+
<dependency>
19+
<groupId>com.fasterxml.jackson.core</groupId>
20+
<artifactId>jackson-core</artifactId>
21+
<version>2.2.2</version>
22+
</dependency>
23+
<dependency>
24+
<groupId>com.fasterxml.jackson.core</groupId>
25+
<artifactId>jackson-databind</artifactId>
26+
<version>2.2.2</version>
27+
</dependency>
28+
<dependency>
29+
<groupId>com.fasterxml.jackson.core</groupId>
30+
<artifactId>jackson-annotations</artifactId>
31+
<version>2.2.2</version>
32+
</dependency>
33+
</dependencies>
34+
</project>
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
package com.hmkcode;
2+
3+
import java.io.File;
4+
import java.io.IOException;
5+
import java.util.Iterator;
6+
import java.util.LinkedList;
7+
import java.util.List;
8+
import java.util.Map;
9+
10+
import com.fasterxml.jackson.core.JsonGenerationException;
11+
import com.fasterxml.jackson.core.type.TypeReference;
12+
import com.fasterxml.jackson.databind.JsonMappingException;
13+
import com.fasterxml.jackson.databind.JsonNode;
14+
import com.fasterxml.jackson.databind.ObjectMapper;
15+
import com.fasterxml.jackson.databind.SerializationFeature;
16+
import com.fasterxml.jackson.databind.node.ArrayNode;
17+
import com.fasterxml.jackson.databind.node.ObjectNode;
18+
import com.hmkcode.vo.Article;
19+
20+
21+
public class App
22+
{
23+
public static void main( String[] args )
24+
{
25+
26+
ObjectMapper mapper = new ObjectMapper();
27+
28+
try {
29+
30+
//POJO to JSON
31+
mapper.writeValue(new File("article.json"), createArticle());
32+
System.out.println("json created!");
33+
34+
//JSON to POJO
35+
Article article = mapper.readValue(new File("article.json"), Article.class);
36+
37+
//"Raw" Data Binding Example
38+
Map<String,Object> articleMap = mapper.readValue(new File("article.json"), Map.class);
39+
40+
System.out.println(article);
41+
42+
System.out.println(articleMap);
43+
44+
//Data binding Collection<E>
45+
List<Article> articles = new LinkedList<Article>();
46+
47+
articles.add(createArticle());
48+
articles.add(createArticle());
49+
50+
mapper.writeValue(new File("articles.json"), articles);
51+
52+
//( 1 ) Collection<Map>
53+
List result = mapper.readValue(new File("articles.json"), List.class);
54+
System.out.println(result.get(0).getClass());
55+
System.out.println(result);
56+
57+
//( 2 ) Collection<Artilce>
58+
result = mapper.readValue(new File("articles.json"), new TypeReference<List<Article>>() { });
59+
System.out.println(result.get(0).getClass());
60+
System.out.println(result);
61+
62+
System.out.println("---------------------------------------------------------");
63+
//Tree
64+
ObjectNode objectRoot = (ObjectNode) mapper.readTree(new File("article.json"));
65+
Iterator<String> fields = objectRoot.fieldNames();
66+
String field = "";
67+
while(fields.hasNext()){
68+
field = fields.next();
69+
System.out.println("field: "+field);
70+
}
71+
System.out.println("---------------------------------------------------------");
72+
73+
ArrayNode arrayRoot = (ArrayNode) mapper.readTree(new File("articles.json"));
74+
75+
Iterator<JsonNode> elements = arrayRoot.elements();
76+
JsonNode element;
77+
78+
while(elements.hasNext()){
79+
element = elements.next();
80+
fields = element.fieldNames();
81+
field = "";
82+
while(fields.hasNext()){
83+
field = fields.next();
84+
System.out.println("field: "+field);
85+
}
86+
87+
}
88+
89+
} catch (JsonGenerationException e) {
90+
e.printStackTrace();
91+
} catch (JsonMappingException e) {
92+
e.printStackTrace();
93+
} catch (IOException e) {
94+
e.printStackTrace();
95+
}
96+
}
97+
98+
private static Article createArticle(){
99+
100+
Article article = new Article();
101+
102+
article.setTitle("Jackson - Java to JSON & JSON to Java");
103+
article.setUrl("http://hmkcode.com/jackson-java-json");
104+
article.addCategory("Java");
105+
article.addTag("Java");
106+
article.addTag("Jackson");
107+
article.addTag("JSON");
108+
109+
return article;
110+
}
111+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.hmkcode.vo;
2+
3+
import java.util.LinkedList;
4+
import java.util.List;
5+
6+
import com.fasterxml.jackson.annotation.JsonIgnore;
7+
import com.fasterxml.jackson.annotation.JsonProperty;
8+
9+
public class Article {
10+
11+
private String title;
12+
//@JsonProperty("address")
13+
private String url;
14+
private List<String> categories;
15+
//@JsonIgnore
16+
private List<String> tags;
17+
18+
public String getTitle() {
19+
return title;
20+
}
21+
public void setTitle(String title) {
22+
this.title = title;
23+
}
24+
public String getUrl() {
25+
return url;
26+
}
27+
public void setUrl(String url) {
28+
this.url = url;
29+
}
30+
public List<String> getCategories() {
31+
return categories;
32+
}
33+
public void setCategories(List<String> categories) {
34+
this.categories = categories;
35+
}
36+
public List<String> getTags() {
37+
return tags;
38+
}
39+
public void setTags(List<String> tags) {
40+
this.tags = tags;
41+
}
42+
43+
public void addCategory(String category){
44+
if(this.categories == null)
45+
this.categories = new LinkedList<String>();
46+
this.categories.add(category);
47+
}
48+
public void addTag(String tag){
49+
if(this.tags == null)
50+
this.tags = new LinkedList<String>();
51+
52+
this.tags.add(tag);
53+
}
54+
@Override
55+
public String toString() {
56+
return "Article [title=" + title + ", url=" + url + ", categories="
57+
+ categories + ", tags=" + tags + "]";
58+
}
59+
60+
61+
62+
}

0 commit comments

Comments
 (0)