JsonReader解析json应用

本文介绍了JSON作为一种轻量级的数据交换格式,其结构包括名称/值对的集合和值的有序列表。GSON是Google提供的Java API,用于Java对象和Json对象之间的转换。文章详细讲解了如何使用JsonReader进行JSON解析,并对比了JSON和XML在数据可读性、解析手段、数据体积、交互性、描述性和速度方面的差异,指出JSON在数据传输中更具优势,而XML更适合做配置文件。
摘要由CSDN通过智能技术生成

JSON(JavaScript Object Notation)是一 种轻量级的数据交换格式。
JSON官网:http://www.json.org

JSON数据格式的特点
JSON建构于两种结构:

  • 1、“名称/值”对的集合
  • 2.、值的有序列表(数组)

JSON表示名称/值对的方式:

 {
    "firstName": "vince", "lastName'"." ma", "email":"finally_ _m@ foxmail.com" }

一个大括号代表一个对象,属性要用双引号,属性值字符串用双引号,整数小数不需要双引号
表示数组

{
   
	"user": [{
   
			"firstName": "vince",
			"lastName": "ma",
			"email": "finally_m@foxmail.com"
		},
		{
   
			"firstName": "lin",
			"lastName": "jacks",
			"email": "jacks @qq.com"
		}
	]
}

GSON组件的使用
GSON是Google开发的Java API,用于转换Java对象和Json对象。
下载地址:http://www.mvnrepository.com/artifact/com.google.code.gson/gson
解析JSON:JsonReader reader = new JsonReader(new StringReader(jsonData));
生成JSON:

private String createJSON(ArrayList<User> users) {
   
        JSONObject jsonObject = new JSONObject();
        JSONArray array = new JSONArray();
        int size = users.size();
        try {
   for (int i = 0; i < size; i++) {
   
                User user = users.get(i); 
                JSONObject object = new JSONObject();
                object.put("name", user.name);
                object.put("age", user.age);
                array.put(object);}
            jsonObject.put("users",array);
            return jsonObject.toString();
        } catch (JSONException e) {
   e.printStackTrace();}
        return null;
    }
static class User {
   String name; int age;//…}

使用 Gson 直接把 JSON 数据转换成 Java 对象

public Student parserJSON2(String data){
   

	Gson gson = new Gson();

	Student s = gson.fromJson(data, Student.class); 
	return s; 
} 

使用 Gson 直接把 JSON 数组转换成 Java 对象

public List<Student> parserJSON3(String data){
   

	Type type = new TypeToken<ArrayList<Student>>(){
   }.getType(); 
	Gson gson = new Gson();
	List<Student> list = gson.fromJson(data, type);
	return list; 
} 

XML与JSON的比较

从以下6点比较JSON与XML:
1、JSON和XML的数据可读性基本相同
2、JSON和XML同样拥有丰富的解析手段
3、JSON相对于XML来讲,数据的体积小
4、JSON与JavaScript的交互更加方便
5、JSON对数据的描述性比XML较差
6、JSON的速度要远远快于XML

适合的场景:
(1)数据传输:JSON要比XML更有优势
(2)存储数据:XML描述性更强
(3)XML通常用做配置文件

解析简单数组示例:

package com.json;

import com.google.gson.stream.JsonReader;
import org.junit.jupiter.api.Test;

import java.io.IOException;
import java.io.InputStream;
import
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值