JSON详细讲解和简单案列

JSON的全称是”JavaScript Object Notation”,即JavaScript对象表示法 是存储和交换文本信息的语法

1.Google的Gson

Gson是目前功能最全的Json解析神器。Gson的应用主要为toJson与fromJson两个转换函数,无依赖,不需要例外额外的jar,能够直接跑在JDK上。而在使用这种对象转换之前需先创建好对象的类型以及其成员才能成功的将JSON字符串成功转换成相对应的对象。

Gson在功能上面无可挑剔,但是性能上面比FastJson有所差距。

Gson允许把简单的Java对象(Plain Old Object,POJO)转换成JSON,反之亦然。开发者所要做的就是把数据定义成普通的Java对象,提供get和set方法,并在项目中引入Gson库。

2.阿里巴巴的FastJson

Fastjson是一个Java语言编写的高性能的JSON处理器,由阿里巴巴公司开发。
无依赖,不需要例外额外的jar,能够直接跑在JDK上。
FastJson在复杂类型的Bean转换Json上会出现一些问题,可能会出现引用的类型,导致Json转换出错,需要制定引用。
FastJson采用独创的算法,将parse的速度提升到极致,超过所有json库。

如果只是功能要求,没有性能要求,可以使用google的Gson,
如果有性能上面的要求可以使用Gson将bean转换json确保数据的正确,使用FastJson将Json转换Bean.


1.json对象解析:

demo:

public class Josn1 {

public static void main(String[] args) {
String js="{'name':'吕佳佳','age':'25'}";
JSONObject obj;
try {
obj = new JSONObject(js);
String name= obj.getString("name");
String age=obj.getString("age");

System.out.println("name"+name+"==="+"age"+age);
} catch (JSONException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}


}


}

运行结果:name吕佳佳===age25

2.json数组解析

demo:首先创建一个方法,可带参可不带

public List<Student> getListPersonByArray(String  josn ){
List<Student>  slist= new  ArrayList<Student>();
try {
JSONArray  jsonarray= new JSONArray(josn);
for(int i=0;i<jsonarray.length();i++){
JSONObject jsonob=(JSONObject) jsonarray.get(i);
slist.add(new Student(jsonob.optString("name")));
System.out.println(jsonob.optString("name")+jsonob.optString("age"));
}
} catch (JSONException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}

return slist;


}
          

测试方法:        public static void main(String[] args) {
               //调试数组json
                    String josn="[{name:'产品'},{age:'12'},{sex:'男'}]";
                    Josn1 ceshi=new Josn1();
                    ceshi.getListPersonByArray(josn);

}


}

运行结果:产品
    12

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baidu_36935379

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值