JSON详细讲解和简单案列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_36935379/article/details/78928202

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

猜你喜欢

转载自blog.csdn.net/baidu_36935379/article/details/78928202