通过codehaus来实现json写入文件和读取文件成json对象


首先:pom.xml需要增加依赖,如下:

view source print ?
01 <dependency>
02 <groupId>org.codehaus.jackson</groupId>
03 <artifactId>jackson-core-lgpl</artifactId>
04 <version>1.9.1</version>
05 </dependency>
06 <dependency>
07 <groupId>org.codehaus.jackson</groupId>
08 <artifactId>jackson-mapper-lgpl</artifactId>
09 <version>1.9.1</version>
10 </dependency>
具体的demo,如下:

001                         package com.javaniu.json;
002  
003 import java.io.File;
004 import java.io.IOException;
005  
006 import org.codehaus.jackson.JsonEncoding;
007 import org.codehaus.jackson.JsonFactory;
008 import org.codehaus.jackson.JsonGenerationException;
009 import org.codehaus.jackson.JsonGenerator;
010 import org.codehaus.jackson.JsonParser;
011 import org.codehaus.jackson.JsonToken;
012 import org.codehaus.jackson.map.JsonMappingException;
013  
014 public class JsonGeneratorAndParser {
015  
016     /**
017      * @param args
018      */
019     public static void main(String[] args) {
020     try {
021  
022         JsonFactory jfactory = new JsonFactory();
023  
024         /*** write to file ***/
025         JsonGenerator jGenerator = jfactory.createJsonGenerator(new File(
026             "c:/user.json"), JsonEncoding.UTF8);
027         jGenerator.writeStartObject(); // {
028  
029         jGenerator.writeStringField("name""java牛"); // "name" : "java牛"
030         jGenerator.writeNumberField("age"29); // "age" : 29
031  
032         jGenerator.writeFieldName("messages"); // "messages" :
033         jGenerator.writeStartArray(); // [
034  
035         jGenerator.writeString("msg 1"); // "msg 1"
036         jGenerator.writeString("msg 2"); // "msg 2"
037         jGenerator.writeString("msg 3"); // "msg 3"
038  
039         jGenerator.writeEndArray(); // ]
040  
041         jGenerator.writeEndObject(); // }
042  
043         jGenerator.close();
044  
045         JsonParser jParser = jfactory.createJsonParser(new File(
046             "c:/user.json"));
047  
048         // loop until token equal to "}"
049         while (jParser.nextToken() != JsonToken.END_OBJECT) {
050  
051         String fieldname = jParser.getCurrentName();
052         if ("name".equals(fieldname)) {
053  
054             // current token is "name",
055             // move to next, which is "name"'s value
056             jParser.nextToken();
057             System.out.println(jParser.getText());
058  
059         }
060  
061         if ("age".equals(fieldname)) {
062  
063             // current token is "age",
064             // move to next, which is "name"'s value
065             jParser.nextToken();
066             System.out.println(jParser.getIntValue()); // display 29
067  
068         }
069  
070         if ("messages".equals(fieldname)) {
071  
072             jParser.nextToken(); // current token is "[", move next
073  
074             // messages is array, loop until token equal to "]"
075             while (jParser.nextToken() != JsonToken.END_ARRAY) {
076  
077             // display msg1, msg2, msg3
078             System.out.println(jParser.getText());
079  
080             }
081  
082         }
083  
084         }
085         jParser.close();
086  
087     catch (JsonGenerationException e) {
088  
089         e.printStackTrace();
090  
091     catch (JsonMappingException e) {
092  
093         e.printStackTrace();
094  
095     catch (IOException e) {
096  
097         e.printStackTrace();
098  
099     }
100  
101     }
102 }
103  
104       
源码下载: http://www.zuidaima.com/share/1550463256562688.htm

你可能感兴趣的:(java,json,最代码)