(一)概念

        JSON:JavaScript Object Notation    JS对象简谱,是一种轻量级的数据交换格式。

        JSON在99年开始出现,到05年前后时得到广泛的使用,超过了XML的行业地位,成为跨平台数据交换的主流格式。

        JSON相对于XML,有如下几个优势:1,程序员解析JSON的程序代码简单;2,机器解析JSON的效率高,速度快;3,JSON格式的表述数据占用空间小,网络传输速度就快。

        但为什么XML仍有很多人在用?除了个别是需要利用XML的专有特性外,少部分是开发者的使用习惯,最主要的原因是:已投入运营的应用,要整体更换数据交换的格式,需要耗费大量人力、财力的,同时还可能涉及到应用系统的生态问题(如果有系统生态的话)。

(二)格式

        一个对象,由一对大括号表示,括号中描述对象的属性,通过键值对来描述对象的属性(大括号中,包含的是一个个键值对)。

        键值对的格式:

                键与值之间使用冒号连接,多个键值对之间使用逗号分隔;

                键值对的键,应使用引号引住(通常JAVA解析时,键不使用引号会报错,二JS能准确解析);

                键值对的值,可以是JS中任意类型的数据。

                值还可以是对象,从而呈现对象嵌套形式,

        例:

      

{
                        "name":"zhangsan1",
                        "age":18,
                        "pengyou":["lisi","wangwu",{
                                                "name":"zhangsan2"
                                                "age":19
                                        }],
                        "hehe":{
                                "name":"dao",
                                "length":"40"
                                }
                }

(三)Java与JSON

        可以将JAVA中的对象,快速转换为JSON格式的字符串,也可以将JSON格式的字符串,转换为JAVA的对象。

        应用类一:Gson

        1. 将对象转换为JSON字符串

                步骤:

                (1)引入JAR包

                (2)使用语法:

                        String json = new Gson().toJson(要转换的对象)

                        例:

         

Book b = BookDao.fand();
                        String json =new Gson().toJson(b);
                        System.out.println(json);

        2. 将JSON字符串转换为对象

                步骤:

                (1)引入JAR包

                (2)使用语法:

                        对象 = new Gson().fromJson(JSON字符串,对象类型.class)

                        例:

             

String json = "{\"id\":1,\"name":\"苹果\",\"作者\":\"张三\",\"info\":\"种苹果\"}";
                        Book book = new Gson().fromJson(json,Book.class);
                        System.out.println(book);

        应用类二:FastJson

        1. 将对象转换为JSON字符串

                (1)引入JAR包

                (2)使用语法:

                        String json = JSON.toJSONString(要转换的对象);

                        例:

      

Book b = BookDao.find();
                        String json = JSON.toJSONString(b);
                        System.out.println(json);

        2.将JSON字符串转换为对象

                (1)引入JAR包

                (2)使用语法:

                        类型 对象名 = JSON.parseObject(JSON字符串 ,类型.class);

                        或

                        List<类型> list  JSON.parseArray(JSON字符串 ,类型.class);

                        例:

           

String json = "{\"id\":1,\"name\":\"金苹果\",\"作者\":\"张三\",\"info\":\"种金苹果\"}"";
                        Book book = JSON.parseObject(json , Book.class);
                        System.out.println(book);