这是关于FastJson的一个使用Demo,在Java环境下验证的
- classUser{
- privateintid;
- privateStringname;
- publicintgetId(){
- returnid;
- }
- voidsetId(intid){
- this.id=id;
- }
- publicStringgetName(){
- returnname;
- voidsetName(Stringname){
- this.name=name;
- }
copy
importjava.util.ArrayList;
importjava.util.List;
classGroup{
intid;
privateStringname;
privateList<User>list=newArrayList<User>();
publicList<User>getList(){
returnlist;
voidsetList(List<User>list){
this.list=list;
copy
classWeibo{
privateStringid;
privateStringcity;
publicWeibo(Stringid,Stringcity){
this.city=city;
publicWeibo(){
publicStringgetId(){
returnid;
voidsetId(Stringid){
publicStringgetCity(){
returncity;
voidsetCity(Stringcity){
this.city=city;
copy
importjava.util.HashMap;
importjava.util.Map;
importcom.alibaba.fastjson.JSON;
importcom.alibaba.fastjson.JSONArray;
importcom.alibaba.fastjson.JSONObject;
//publicstaticfinalObjectparse(Stringtext);//把JSON文本parse为JSONObject或者JSONArray
//publicstaticfinalJSONObjectparseObject(Stringtext);//把JSON文本parse成JSONObject
//publicstaticfinal<T>TparseObject(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
*/
classJsonDemo{
staticvoidmain(String[]args){
json2JsonObjectM1();
json2BeanM2();
json2JSONArrayM3();
json2JavaBeanM4();
bean2JsonM5();
bean2JSONObjectM6();
complexExampleM7();
complex2JsonM8();
complexMap2JsonM9();
*将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
voidjson2JsonObjectM1(){
//一个JsonObject文本数据
Strings="{"name":"liuzhao"}";
//将JsonObject数据转换为Json
JSONObjectobject=JSON.parseObject(s);
//利用键值对的方式获取到值
System.out.println(object.get("name"));
*打印:
*liuzhao
*/
*将Json文本数据转换为JavaBean数据!
*需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null!
voidjson2BeanM2(){
Strings="{"id":"0375","city":"平顶山"}";
//一个简单方便的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!
Weiboweibo=JSON.parseObject(s,Weibo.class);
System.out.println(weibo.getId());
System.out.println(weibo.getCity());
//打印的结果0375
//平顶山
/**
*将Map类型的数据转换为JsonString
voidcomplexMap2JsonM9(){
Groupgroup=newGroup();
group.setId(1);
group.setName("group");
Useruser1=newUser();
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=newHashMap<Integer,Object>();
map.put(1,"No.1");
map.put(2,"No.2");
3,group.getList());
StringjsonString=JSON.toJSONString(map);
System.out.println(jsonString);
*输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
*由一个复杂的Object到Json的Demo
voidcomplex2JsonM8(){
StringjsonString=JSON.toJSONString(group);
*输出:{"id":1,"list":[{"id":2,"name":"user2"}],"name":"group"}
*一个相对复杂的例子:
*JSON文本数据:
*首先是JSONObject,转换为JSONArray;
*然后将JSONArray转换为JavaBean
voidcomplexExampleM7(){
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.parseObject(s);
ObjectjsonArray=object.get("js");
System.out.println(jsonArray);
List<Weibo>list=JSON.parseArray(jsonArray+"",Weibo.class);
for(Weiboweibo:list){
*将JavaBean转换为JSON对象
voidbean2JSONObjectM6(){
Weiboweibo=newWeibo("0373","洛阳");
JSONObjectjson=(JSONObject)JSON.toJSON(weibo);
System.out.println(json.get("id"));
*0373
*将JSON文本转换为JavaBean的集合;
*内部实现肯定是:首先转换为JSONArray,然后再转换为List集合
voidjson2JavaBeanM4(){
Strings="[{"id":"0375","city":"平顶山"},{"id":"0377","city":"南阳"}]";
List<Weibo>list=JSON.parseArray(s,153); background-color:inherit; font-weight:bold">class);
for(Weiboweibo:list){
System.out.println(weibo.getCity());
*平顶山
*南阳
*将json数据转化为JSONArray:
*注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合)
*获取JSONArray中的数据转换为String类型需要在外边加"";
voidjson2JSONArrayM3(){
//将JSON文本转换为JSONArray
JSONArrayarray=JSON.parseArray(s);
//这行必须写:必须加上+"";不然会报出类型强转异常!
Stringstr=array.get(1)+"";
System.out.println(array.get(0));
JSONObjectobject=JSON.parseObject(str);
System.out.println(object.get("id"));
*{"city":"平顶山","id":"0375"}
0377
*将JavaBean转换为Json格式的数据/Json文本
*用户数据的传递:例如上传服务器
voidbean2JsonM5(){
newWeibo("123456","上海");
Stringstring=JSON.toJSONString(weibo);
System.out.println(string);
*{"city":"上海","id":"123456"}
}
转自:
http://www.oschina.net/code/snippet_228315_35122 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|