JSON解析

一、简介

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

二、对象格式

下面是一个聚合 api 网站上免费的API

{
    "reason": "success",
    "result": [
        {
            "day": "1/1",
            "date": "前45年01月01日",
            "title": "罗马共和国开始使用儒略历",
            "e_id": "1"
        }
    ],
    "error_code": 0
}

{} :   大括号代表一个对象

[] :      中括号代表一个数组

::   冒号前面是属性名,后面是属性值

" " :    双引号内是属性值,Boolean和int 类型可以不用加,属性名可加可不加

,:   逗号 每个属性之间用逗号隔开,最后一个属性不用加

三、JSON 解析

解析之前都要先引入jar包

1、Gson

1.1、将对象转换为json类型字符串

步骤:

  1. 引入jar包 (下载地址)
  2. 在需要转换JSON字符串的位置编写如下代码: String json = new Gson().toJSON(要转换的对象);

一个简单的小栗子

/**
 * 将一个对象转换为json格式
 */
public class GsonDemo01 {
    public static void main (String[] args) {
//        1、创建Gson对象
        Gson gson = new Gson ();
//        2、转换
//       初始化一个对象
        Person person = new Person ("1001","大锤","一个秃头的小锤锤" );
        String s = gson.toJson (person);
        System.out.println (s);

    }
}


运行截图:

1.2、将JSON字符串转换为对象

步骤:

  1. 引入jar包(下载地址)
  2. 在需要转换Java对象的位置, 编写如下代码:
    对象 = new Gson().fromJson(JSON字符串,对象类型.class);

/**
 * 将一个json格式,转换为一个对象
 */
public class GsonDemo02 {
    public static void main (String[] args) {
//        1、创建Gson对象
        Gson gson = new Gson ();
//        2、转换
//        {"id":"1001","name":"大锤","info":"一个秃头的小锤锤"}
        Person person = gson.fromJson ("{\"id\":\"1001\",\"name\":\"大锤\",\"info\":\"一个秃头的小锤锤\"}", Person.class);
        System.out.println (person.toString ());

    }
}

运行截图

如果JSON字符串中包含数组,那么 在转换时会将数组转化为ArrayList集合类型

/**
 * 将一个json格式(包含数组的),转换为一个对象
 */
public class GsonDemo03 {
    public static void main (String[] args) {
//        1、创建Gson对象
        Gson gson = new Gson ();
//        2、转换
//        {"id":"1001","name":"大锤","info":"一个秃头的小锤锤", "family":["妈妈", "爸爸", "姐姐"]}
        HashMap hashMap = gson.fromJson ("{\"id\":\"1001\",\"name\":\"大锤\",\"info\":\"一个秃头的小锤锤\", \"family\":[\"妈妈\", \"爸爸\", \"姐姐\"]}", HashMap.class);
        System.out.println (hashMap.toString ());
        System.out.println (hashMap.get ("family"));//[妈妈, 爸爸, 姐姐]
        System.out.println (hashMap.get ("family").getClass ()); //class java.util.ArrayList
        List family = (List)hashMap.get("family");
        System.out.println (family.get (2));
    }
}

运行截图

 2、FastJson

2.1、将对象转换为json类型字符串

步骤:

  1.  引入JAR包 (FastJson 下载地址)
  2. 在需要转换JSON字符串的位置编写如下代码:
    String json=JSON.toJSONString(要转换的对象);

一个简单的小栗子:

/**
 * 对象转换为json格式
 */
public class FastJsonDemo01 {
    public static void main (String[] args) {
        Person person = new Person ("1002", "小锤", "一个秃头的大锤锤");
//        转换
        String s = JSON.toJSONString (person);
        System.out.println (s);
    }
}

运行截图:

2.2、将JSON字符串转换为对象

  • 如果看到是{ }–>使用JSONObject
  • 如果看到的[ ]–>使用JSONArray解析

步骤:

  1.  引入JAR包 (FastJson 下载地址)
  2. 在需要转换Java对象的位置, 编写如下代码:
    类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
    或 List list=JSON.parseArray(JSON字符串,类型.class);

一个简单的小栗子:

/**
 * Json格式转化为对象
 */
public class FastJsonDemo02 {
    public static void main (String[] args) {
//        转换
//        {"name":"小锤","id":"1002","info":"一个秃头的大锤锤"}
        Person person = JSON.parseObject ("{\"name\":\"小锤\",\"id\":\"1002\",\"info\":\"一个秃头的大锤锤\"}", Person.class);
        System.out.println (person.toString ());
    }
}

运行截图:

public class FastJsonDemo03 {
    public static void main (String[] args) {
//        转换
//        ["吃饭", "睡觉", "哈哈哈"]
        List<String> list = JSON.parseArray ("[\"吃饭\", \"睡觉\", \"哈哈哈\"]", String.class);
        System.out.println (list.getClass ());
        System.out.println (list.toString ());
        System.out.println (list.get (2));
    }
}

运行截图:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值