Java对JSON解析的两种方式

一、JSON简介

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

采用了完全独立于编程语言的文本格式来存储和表示数据。


对象格式

创建图书对象:

Book.class

属性:书名(name),简介(info)

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":"";
}

数组格式

{} 指一个对象

[] 指一个数组

实例:

{
    "name":"下一场"
    "info":"下一场战争"
    "writer":["张三","李四",{"name":"王五","info":"伟大的作家"}]
    "sequal":{
          "name":"上一场",
          "info":"上一场战争"
    }
}

二、Java下对JSON的解析方式

注:Book对象中包含id,name,info三种属性,皆为String

1、Gson

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

步骤:

1.引入JAR包

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

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

实例:

public class Demo1 {
    public static void main(String[] args) {
        //1.    创建Gson对象
        Gson g = new Gson();
        //2.    转换
        Book b = new Book("1001","金苹果","种苹果");
        String json = g.toJson(b);
        System.out.println(json);
    }
}

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

步骤:

1. 引入JAR包

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

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

实例:

public class Demo2 {
    public static void main(String[] args) {
        //1.    创建Gson对象
        Gson g = new Gson();
        //2.    转换  : {"id":"1001","name":"金苹果","info":"种苹果"}
        Book b = g.fromJson("{\"id\":\"1001\",\"name\":\"金苹果\",\"info\":\"种苹果\"}",Book.class);
        System.out.println(b);
    }
}

3)将JSON字符串中的数组(以[]表示)转换为集合

实例:

public class Demo3 {
    public static void main(String[] args) {
        //1.    创建Gson对象
        Gson g = new Gson();
        //2.    转换  : {"id":"1001","name":"金苹果","info":"种苹果","page":["第一页","第二页","第三页"]}
        HashMap data = g.fromJson("{\"id\":\"1001\",\"name\":\"金苹果\",\"info\":\"种苹果\",\"page\":[\"第一页\",\"第二页\",\"第三页\"]}", HashMap.class);
        System.out.println(data.get("id"));
        List page = (List) data.get("page");
        System.out.println(page.get(1));
    }
}

2、FastJson

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

步骤:

1. 引入JAR包

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

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

实例:

public class Demo4 {
    public static void main(String[] args) {
        Book book = new Book("1002","唐诗三百首","没有三百首");
        //1.    转换
        String json = JSON.toJSONString(book);
        System.out.println(json);
    }
}

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

步骤:

1. 引入JAR包

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

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

实例:

public class Demo5 {
    public static void main(String[] args) {
        //1.    转换  : {"id":"1002","name":"唐诗三百首","info":"没有三百首"}
        Book book = JSON.parseObject("{\"id\":\"1002\",\"name\":\"唐诗三百首\",\"info\":\"没有三百首\"}",Book.class);
        System.out.println(book);
    }
}

3)将JSON字符串转换成集合

步骤:

1. 引入JAR包

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

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

实例

public class Demo6 {
    public static void main(String[] args) {
        //1.    转换  : ["001","002","003"]
        List<String> list = JSON.parseArray("[\"001\",\"002\",\"003\"]",String.class);
        System.out.println(list.get(1));
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值