您的位置:首页 > Web前端 > JavaScript

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

2014-01-22 21:09 573 查看
首先:pom.xml需要增加依赖,如下:viewsourceprint?
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐