工具包org.json.jar,是一个轻量级的,java下非师范生考教资的json构造和解析工具包,它还包含json与xml, http h台山景点eaders,小枣 cookies, cdl的转换。
这里推荐使用:阿里巴巴fastjson是一个json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parr。包括自称最快的jackjson;
功能强大,完全支持java bean、集合、map、日期、enum,支持范型,支持自省;无依赖,能够直接运行在java 5.0以上版本;支持android;开源 (apache 2.0)
源码地址:
fastjson api入口类是com.alibaba.fastjson.json,常用的序列化操作都可以在json类上的静态方法直接完成。
public static final object par(string text); // 把json文本par为jsonobject或者jsonarray
public static final jsonobject parobject(string text); // 把json文本par成jsonobject
public static final t parobject(string text, class clazz); // 把json文本par为javabean
public static final jsonarray pararray(string text); // 把json文本par成jsonarray
public static final list pararray(string text, class clazz); //把json文本par成javabean集合
public static final string tojsonstring(object object); // 将javabean序列化为json文本
public static final string tojsonstring(object object, boolean prettyformat); // 将javabean序列化为带格式的json文本
public static final object tojson(object javaobject); 将javabean转换为jsonobject或者jsonarray。
以上都是一些项目中的常用方法。
以下是自己练习写的代码:
package com.test; public class testplol宝宝erson { private int age; private string name; public testperson(){ } public testperson(int age,string name){ this.age=age; this.name=name; } public int getage() { return age; } public void tage(int age) { this.age = age; } public string getname() { return name; } public void tname(string name) { this.name = name; }} package com.test;import java.util.*; import com.alibaba.fastjson.*; public final class testfastjson { public static void main(string[] args) { // todo auto-generated method stub testperson json = new testperson(19,"李明"); list<testperson> 电子请贴list = new arraylist<testperson>(); list.add(json); list.add(new testperson(12,"张三")); //将集合或者对象序例化成json system.out.println(json.tojson(json)); system.out.println( json.tojson(list) ); //json串反序列化成对象 testperson person = json.parobject("{\"name\":\"李明\",\"age\":19}", testperson.class); system.out.printf("name:%s,age:%d\n",person.getname(),person.getage()); string str = "[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"; //数组对象反序列化成集合 list<testperson> listperson = json.pararray(str,testperson.class); for(testperson item : listperson){ system.out.println( item.getname() ); system.out.println( item.getage()); } //没有对象直接解析json对象 jsonobject jobj = json.parobject("{\"name\":\"李明\",\"age\":19}"); system.out.printf("name:%s,age:%d\n",jobj.getstring("name"),jobj.getbiginteger("age")); //没有对象直接解析json数组 jsonarray jarr = json.pararray("[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"); for(int i=0,len=jarr.size();i<len;i++){ jsonobject temp= jarr.getjsonobject(i); system.out.printf("name:%s,age:%d\n",temp.getstring("name"),temp.getbiginteger("age")); } for(object obj:jarr){ system.out.println(obj.tostring()); } } }
本文发布于:2023-04-07 08:45:50,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/9f30570c04ad88b45df2de18a3f3701a.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:java解析json方法总结.doc
本文 PDF 下载地址:java解析json方法总结.pdf
留言与评论(共有 0 条评论) |