Android 数据传递之JSON --GSON

JSON 的全称是 JavaScript Object Notation ,也就是 JavaScript 对象表示法
JSON 是存储和交换文本信息的语法,类似 XML ,但是比 XML 更小、更快,更易解析
JSON 是轻量级的文本数据交换格式,独立于语言,具有可描述性,更易理解,对象可以包含多个名称 /
值对,比如:
{"name":"zhangsan" , "age":25}

 json简单说就是对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构

1 、对象:对象表示为 “{}” 扩起来的内容,数据结构为
{key value,key value,...} 的键值对的结构,在面 向对象的语言中,key 为对象的属性, value 为对应的属性值,所以很容易理解,取值方法为 对象 .key 获 取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2 、数组:数组在 json 中是中括号 “[]” 扩起来的内容,数据结构为 ["java","javascript","vb",...] ,取值方式和 所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
经过对象、数组 2 种结构就可以组合成复杂的数据结构了。
1 SDK 提供
       JSONArray, JSONObject
2 google 提供的 Gson
        通过fromJson() 实现对象的反序列化(即将 json 串转换为对象类型)
        通过toJson() 实现对象的序列化 (即将对象类型转换为json 串)

 使用谷歌的GSON包进行解析,在 Android Studio 里引入依赖:

compile  'com.google.code.gson:gson:2.7'

 值得注意的是实体类中变量名称必须和json中的值名字相同。

使用示例:
1 、解析成实体类:
Gson gson = new Gson();
Student student = gson.fromJson(json1, Student.class);
2 、解析成 int 数组:
Gson gson = new Gson();
int[] ages = gson.fromJson(json2, int[].class);
3 、直接解析成 List.

Gson gson = new Gson();
List<Integer> ages = gson.fromJson(json2, newTypeToken<List<Integer>>()
{}.getType);
Gson gson = new Gson();
List<Student> students = gson.fromJson(json3, newTypeToke<List<Student>>()
{}.getType);

优点:
  1. 轻量级的数据交换格式
  2. 读写更加容易
  3. 易于机器的解析和生成
缺点:
  1. 语义性较差,不如 xml 直观

————————————————

版权声明:本文为CSDN博主 CongPong 的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/CongPong/article/details/125891899
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值