JSON

一. 简介:

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

二. 对象格式

  一本书

   书名

   简介

  java

    class Book{

     private String name;

     private String info;

     get/set...

    }

    Book b = new Book();

    b.setName(“金苹果”);

    b.setInfo(“种苹果”);

    ...

  js

    var b = new Object();

    b.name = "金苹果";

    b.info = "种苹果";

  XML

    <book>

     <name>金苹果</name>

     <info>种苹果</info>

    </book>

  JSON

    {

     "name":"金苹果",

     "info":"种苹果"

    }

  一个对象,由一个大括号表示。

   括号中 描述对象的属性通过键值对来描述对象的属性。

   (可以理解为,大括号中,包含的是一个个的键值对)

   格式:

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

    键值对的键应使用引号引住(通常Java解析时,键不使用引号会报错,而JS能正确解析)。

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

三. 数组格式

  在JSON格式中可以与对象互相嵌套

  [元素1,元素2...]

四. Java与JSON

  将Java中的对象快速的转换为 JSON格式的字符串。

  将JSON格式的字符串,转换为Java的对象

  1. Gson

   1.1 将对象转换为JSON字符串

     转换JSON字符串的步骤:

     (1)引入JAR包

     (2)在需要转换JSON字符串的位置编写如下代码即可:

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

      例子:

        Gson g = new Gson();

        Book b = new Book("1001","金苹果","种植苹果真辛苦");

        String s = g.toJson(b);

        System.out.println(s);

   1.2 将JSON字符串转换为对象

     (1)引入JAR包

     (2)在需要转换Java对象的位置, 编写如下代码:

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

      例子:

        Gson g = new Gson();

        Book b = g.fromJson("{\"id\":\"1001\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\"}",Book.class);

        System.out.println(b);

      JSON字符串含有数组

        Gson g = new Gson();

        HashMap map = g.fromJson("{\"id\":\"1001\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\",\"data\":[\"一二三\",\"二三四\",\"三四五\"]}",HashMap.class);

      此时JSON字符串里的数组被转换成了list集合,即上面的data对应的数据是list集合的数据

        List<String> d = (List<String>) map.get(data);

        System.out.println(d.get(0));

  2. FastJson

   2.1 将对象转换为JSON字符串

     转换JSON字符串的步骤:

     (1)引入JAR包

     (2)在需要转换JSON字符串的位置编写如下代码即可:

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

     例子:

       Book book = new Book("1002","唐诗三百首","床前明月光");

       String s = JSON.toJSONString(book);

       System.out.println(s);

   2.2 将JSON字符串转换为对象

     (1)引入JAR包

     (2)在需要转换Java对象的位置, 编写如下代码:

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

       或

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

     例子:

       Book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"床前明月光\",\"name\":\"唐诗三百首\"}",Book.class);

       System.out.println(book.getId());

     list集合的转换

       List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]",String.class);

       System.out.println(strings);

  3. Gson和FastJson的选择

    FastJson相对Gson来说比较方便,但如果出于安全考虑则建议用Gson

JSON

上一篇:BZOJ 1002 [FJOI2007]轮状病毒


下一篇:设置text-overflow文本溢出隐藏时的对齐问题