JAVA填坑工程--JSON

知之为知之,深知深知!

一、认识JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式;

JSON就是javascript中的对象和数组,通过这两种结构可以表示各种复杂的结构。

1、对象:

在js中,对象表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对,其中key为对象的属性,value为对应的属性值,取值方法为对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、逻辑值、对象、null六种。对象是一个无序的“‘名称/值’对”集合。

(1)一个对象以“{”(左括号)开始,“}”(右括号)结束。

(2)每个“名称”后跟一个“:”(冒号);

(3)“‘名称/值’ 对”之间使用“,”(逗号)分隔。

eg: {"name":"job","sex":"man","age":"28"}

2、数组:

在js中,数组是中括号“[]”括起来的内容,数据结构为 [“java”,“javascript”,“vb”,…],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是是数字、字符串、数组、逻辑值、对象、null六种。

数组是值(value)的有序集合。

(1)一个数组以“[”(左中括号)开始,“]”(右中括号)结束。

(2)值之间使用“,”(逗号)分隔。

经过对象、数组2种结构就可以组合成复杂的数据结构了。

三个user 对象放在一个数组中。

   {

"user":[

{"name":"Job","sex":"man","age":"28"},

{"name":"Aim","sex":"women","age":"25"},

{"name":"Cecilia","sex":"women","age":"27"}

]

}

二、Fastjson

Fastjson是一个Java语言编写的高性能、功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。

Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。
在这里插入图片描述
Fastjson开源地址为:https://github.com/alibaba/fastjson

在maven工程中,添加如下依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.1.70.android</version>
</dependency>

fastJson API:

JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。

JSONObject:fastJson提供的json对象。

JSONArray:fastJson提供json数组对象。

1、json字符串-简单对象型、字符串-JSONObject之间的转换;
方法:parseObject()

  public static  void testStringToObject(){
  
        String str = "{\"name\":\"job\",\"sex\":\"man\",\"age\":\"28\"}";
        
        JSONObject obj1 = JSON.parseObject(str);
        System.out.println("JSON的方法-->名字为"+obj1.getString("name"));

        JSONObject obj2 = JSONObject.parseObject(str);
        System.out.println("JSONObject的方法-->性别为"+obj2.get("sex"));
    }

运行结果:

toObject

2、json字符串-数组、字符串-JSONObject之间的转换,;
方法:parseArray()

 public static  void testStringToArray(){

        String str = "[{\"name\":\"job\",\"sex\":\"man\",\"age\":\"28\"},{\"name\":\"Cecilia\",\"sex\":\"women\",\"age\":\"27\"}]";

        JSONArray arr1 = JSON.parseArray(str);
        for (int i = 0; i < arr1.size(); i++){
            JSONObject jsonObject = arr1.getJSONObject(i);
            System.out.println("JSON的方法-->第"+(i+1)+"个对象的名字为"+jsonObject.getString("name"));
        }

        JSONArray obj2 = JSONObject.parseArray(str);
        for (int i = 0; i < obj2.size(); i++){
            JSONObject jsonObject = arr1.getJSONObject(i);
            System.out.println("JSONObject的方法-->第"+(i+1)+"个对象的性别为"+jsonObject.getString("sex"));
        }

    }

运行结果:
toArray

3、JSON格式字符串与javaBean之间的转换。

   public static  void testStringToJaveBean(){

        String str = "{\"name\":\"Job\",\"sex\":\"man\",\"age\":\"28\"}";
        Guest guest = JSON.parseObject(str,Guest.class);
        System.out.println("JavaBean的方法-->名字为"+guest.getName());

        Guest guest2 = JSONObject.parseObject(str,Guest.class);
        System.out.println("JavaBean的方法-->性别为"+guest2.getSex());
        
    }

运行结果:
ToJavaBean

4、JSON格式字符串与javaBean数组之间的转换。


    public static  void testStringToJavaBeanArray(){

        String str = "[{\"name\":\"job\",\"sex\":\"man\",\"age\":\"28\"},{\"name\":\"Cecilia\",\"sex\":\"women\",\"age\":\"27\"}]";

        List<Guest> list = JSON.parseArray(str,Guest.class);
        for (int i = 0; i < list.size(); i++){
            System.out.println("JSON的方法-->第"+(i+1)+"个对象的名字为"+list.get(i).getName());
        }


        List<Guest> list2 = JSONArray.parseArray(str,Guest.class);
        for (int i = 0; i < list2.size(); i++){
            System.out.println("JSON的方法-->第"+(i+1)+"个对象的性别为"+list2.get(i).getSex());
        }

    }

运行结果:
ToJavaBeanArray

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值