简单实现手动解析JSON、Gson框架技术和FastJson框架技术

手动解析JSON、Gson框架技术和FastJson框架技术

接下来这段时间我会不定期的更新博客,大多数是关于Android方面,后续也会提供一些面试经验等等。

JSON的简介

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,解析Json数据首先是需要获取或者创建一个json数据,然后再一步步把数据进行解析。在接下来每次做测试的时候,我都会给大家提供一个json的测试数据。

JSON对象转换为Java对象

测试数据:

{
“id”: 2,
“name”: “wcl”,
“price”: 520
}

解析json数据的时候,第一步我们需要去获取json数据,然后才开始解析。
在解析数据的时候有两种方法:

  1. 采用jsonObject.getInt(),jsonObject.getString(),等方法去获取数据
  2. 采用jsonObject.optInt(),jsonObject.optString(),等方法去获取数据

两种方式都可以获得数据,没有什么多大的区别,建议采用第二种方式,因为第二种方式不会报告空指针异常的情况。
在这里插入图片描述
我在这里创建了一个Demo_1的class文件主要是为了存储解析后的json对象。

JSON数组转换为Java集合

json数据:

[
{
“id”: 2,
“name”: “wcl”,
“price”: 520
},
{
“id”: 3,
“name”: “czl”,
“price”: 520
}
]

解析JSON数组一般采用JSONArray去解析
在这里插入图片描述

复杂的json数据的解析

json数据

{
“re_code”: “1000”,
“date”: {
“count”: 2,
“items”: [{
“id”: 2,
“name”: “wcl”,
“price”: 520
},
{
“id”: 3,
“name”: “czl”,
“price”: 520
}
]
},
“re_msg”: “success”
}

在这里插入图片描述

JSONFormat工具的安装

在这里插入图片描述

在这里插入图片描述
这一款工具是帮助我们快速生成JSON数据所对应的的Java对象的,使用方法Alt+Enter+s
在这里插入图片描述

特殊的JSON的数据解析

JSON数据:

{
“re_code”: “1000”,
“date”: {
“items”: {
“0”: {
“id”: 2,
“name”: “wcl”,
“price”: 520
},
“1”: {
“id”: 3,
“name”: “czl”,
“price”: 520
}
}
}
}

为什么说这是一个特殊的JSON数据呢,因为数字在Java中不能作为类名的,当我们用JSONFormat工具时会发现它并不会帮我正确的创建,那么我们该怎么办呢?

首先创建一个class类

import java.util.List;

public class Demo_3 {
   

    /**
     * re_code : 1000
     * date : {"items":{"0":{"id":2,"name":"wcl","price":520},"1":{"id":3,"name":"czl","price":520}}}
     */
    private String re_code;
    private List<FileBean> list;

    @Override
    public String toString() {
   
        return "Demo_3{" +
                "re_code='" + re_code + '\'' +
                ", list=" + list +
                '}';
    }

    public String getRe_code() {
   
        return re_code;
    }

    public void setRe_code(String re_code) {
   
        this.re_code = re_code;
    }

    public List<FileBean> getList() {
   
        return list;
    }

    
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值