首页
人工智能
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
网络运维
FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具
Json
2020-02-19
这是关于FastJson的
一个
使用Demo,在
Java
环境下验证的
[java]
view plain
copy
class
User{
private
int
id;
private
Stringname;
public
int
getId(){
return
id;
}
void
setId(
int
id){
this
.id=id;
}
public
StringgetName(){
return
name;
void
setName(Stringname){
this
.name=name;
}
cop
y
import
java.util.ArrayList;
import
java.util.List;
class
Group{
int
id;
private
Stringname;
private
List<User>list=
new
ArrayList<User>();
public
List<User>getList(){
return
list;
void
setList(List<User>list){
this
.list=list;
cop
y
class
Weibo{
private
Stringid;
private
Stringcity;
public
Weibo(Stringid,Stringcity){
this
.city=city;
public
Weibo(){
public
StringgetId(){
return
id;
void
setId(Stringid){
public
StringgetCity(){
return
city;
void
setCity(Stringcity){
this
.city=city;
cop
y
import
java.util.HashMap;
import
java.util.Map;
import
com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject;
//下面是FastJson的简介:常用的
方法
!
//FastjsonAPI入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态
方法
直接完成。
//publicstaticfinalObjectparse(Stringtext);//把JSON文本parse为JSONObject或者JSONArray
//publicstaticfinalJSONObjectpar
SEO
bject(Stringtext);//把JSON文本parse成JSONObject
//publicstaticfinal<T>Tpar
SEO
bject(Stringtext,Class<T>clazz);//把JSON文本parse为JavaBean
//publicstaticfinalJSONArrayparseArray(Stringtext);//把JSON文本parse成JSONArray
//publicstaticfinal<T>List<T>parseArray(Stringtext,Class<T>clazz);//把JSON文本parse成JavaBean集合
//publicstaticfinalStringtoJSONString(Objectobject);//将JavaBean序列化为JSON文本
//publicstaticfinalStringtoJSONString(Objectobject,booleanprettyFormat);//将JavaBean序列化为带格式的JSON文本
//publicstaticfinalObjecttoJSON(ObjectjavaObject);将JavaBean转换为JSONObject或者JSONArray(和上面
方法
的区别是返回值是不一样的)
/**
*这是关于FastJson的
一个
使用Demo,在Java环境下验证的;
*使用的时候可以参照这个例子进行回忆!
*备注:下面写的Json格式的数据"前面的\,意思是告诉编译器忽略掉它后面的"。
*后面定义有三个类:User、Group、Weibo
*@authorliuzhao
*/
class
JsonDemo{
static
void
main(String[]args){
json2JsonObjectM1();
//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式
获取
信息
json2BeanM2();
//将Json文本数据转换为JavaBean数据!
json2JSONArrayM3();
//将json数据转化为JSONArray:
json2JavaBeanM4();
//将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:par
SEO
bject(Stringtext,Class<T>clazz);
bean2JsonM5();
//将JavaBean转换为Json格式的数据/Json文本
用户
数据的传递:例如
上传
服务器
bean2JSONObjectM6();
//将JavaBean转换为JSON对象
complexExampleM7();
//
一个
相对复杂的例子:
complex2JsonM8();
//
一个
复杂的Object到Json的Demo
complexMap2JsonM9();
//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛!
*将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式
获取
信息
void
json2JsonObjectM1(){
//
一个
JsonObject文本数据
Strings=
"{\"name\":\"liuzhao\"}"
;
//将JsonObject数据转换为Json
JSONObjectobject=JSON.par
SEO
bject(s);
//利用键值对的方式
获取
到值
Sy
stem
.out.println(object.get(
"name"
));
*打印:
*liuzhao
*/
*将Json文本数据转换为JavaBean数据!
*需要注意的是:这时候的Json文本信息中的键的
名称
必须和JavaBean中的字段
名称
一样!键中没有的
在这
个JavaBean中就
显示
为null!
void
json2BeanM2(){
Strings=
"{\"id\":\"0375\",\"city\":\"平顶山\"}"
;
//
一个
简单方便的
方法
将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!
Weiboweibo=JSON.par
SEO
bject(s,Weibo.
class
);
//Weibo类在下边定义
Sy
stem
.out.println(weibo.getId());
Sy
stem
.out.println(weibo.getCity());
//打印的结果0375
//平顶山
/**
*将Map类型的数据转换为JsonString
void
complexMap2JsonM9(){
Groupgroup=
new
Group();
group.setId(
1
);
group.setName(
"group"
);
Useruser1=
new
User();
user1.setId(
2
);
user1.setName(
"user1"
);
Useruser2=
user2.setId(
3
);
user2.setName(
"user2"
);
group.getList().add(user1);
group.getList().add(user2);
Map<Integer,Object>map=
new
HashMap<Integer,Object>();
map.put(
1
,
"No.1"
);
map.put(
2
,
"No.2"
);
3
,group.getList());
StringjsonString=JSON.toJSONString(map);
Sy
stem
.out.println(jsonString);
*
输出
:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
*由
一个
复杂的Object到Json的Demo
void
complex2JsonM8(){
StringjsonString=JSON.toJSONString(group);
*
输出
:{"id":1,"list":[{"id":2,"name":"user2"}],"name":"group"}
*
一个
相对复杂的例子:
*JSON文本数据:
*首先是JSONObject,转换为JSONArray;
*然后将JSONArray转换为JavaBean
void
complexExampleM7(){
Strings=
"{js:[{id:\"110000\",\"city\":\"北#001京市\"},{id:\"110000\",\"city\":\"北#002京市\"}"
+
",\"city\":\"北#002京市\"},"
+
"{id:\"110000\",\"city\":\"#006北#005京市\"},"
+
"{id:\"110000\",{id:\"120000\",\"city\":\"天#009津市\"}]}"
;
JSONObjectobject=JSON.par
SEO
bject(s);
ObjectjsonArray=object.get(
"js"
);
Sy
stem
.out.println(jsonArray);
List<Weibo>list=JSON.parseArray(jsonArray+
""
,Weibo.
class
);
for
(Weiboweibo:list){
*将JavaBean转换为JSON对象
void
bean2JSONObjectM6(){
Weiboweibo=
new
Weibo(
"0373"
,
"洛阳"
);
JSONObjectjson=(JSONObject)JSON.toJSON(weibo);
Sy
stem
.out.println(json.get(
"id"
));
*0373
*将JSON文本转换为JavaBean的集合;
*内部实现肯定是:首先转换为JSONArray,然后再转换为List集合
void
json2JavaBeanM4(){
Strings=
"[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]"
;
List<Weibo>list=JSON.parseArray(s,153); background-color:inherit; font-weight:bold">class
);
for
(Weiboweibo:list){
Sy
stem
.out.println(weibo.getCity());
*平顶山
*南阳
*将json数据转化为JSONArray:
*注意:
获取
到JSONArray之后(我们这里只是
获取
到JSONArray而不是JavaBean的List集合)
*
获取
JSONArray中的数据转换为String类型需要在外边加"";
void
json2JSONArrayM3(){
//将JSON文本转换为JSONArray
JSONArrayarray=JSON.parseArray(s);
//这行必须写:必须
加上
+"";不然会报出类型强转异常!
Stringstr=array.get(
1
)+
""
;
Sy
stem
.out.println(array.get(
0
));
JSONObjectobject=JSON.par
SEO
bject(str);
Sy
stem
.out.println(object.get(
"id"
));
*{"city":"平顶山","id":"0375"}
0377
*将JavaBean转换为Json格式的数据/Json文本
*
用户
数据的传递:例如
上传
服务器
void
bean2JsonM5(){
new
Weibo(
"123456"
,
"上海"
);
Stringstring=JSON.toJSONString(weibo);
Sy
stem
.out.println(string);
*{"city":"上海","id":"123456"}
}
转自:
http://www.oschina.net/code/snippet_228315_35122
相关文章
ajax怎么解析一段json
AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
ajax怎么把json拿出来
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
ajax怎么循环json对象数组
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
ajax怎么从c 后台读取json
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
ajax怎么传递json数据
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
ajax怎么删除json数据库
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...