Android 网络通信2

JSON

一、什么是JSON?
1、JSON(JavaScript 0bject Notation)是一种轻量级的数据交换格式
2、客户端(浏览器端)与服务器端交互: xml json
3、木质就是具有特定格式的字符串
4、JSON数据已经是客户端与服务器端交互的最常用的选择,已经很少使用xml来进行数据交互了
二、JSON数据格式
整体结构:

  • String json1 ="{“id” : 12,“name”:“Tom”}";
  • String json2 ="[{“id” : 12,“name”: “Tom”}, {“id”: 12,“name”:“Tom”}]";

Json数组:[ ]>ArrayList
Json对象:{ }→>HashMap

Json数组的结构:

  • [value1, value2, value3]

Json对象的结构:

  • {key1:value1, key2:value2, key3:value3}

key的数据类型:

  • 字符串

value的数据类型:

  • 数值(包含整数和小数)
  • 字符串
  • null
  • json数组 [ ] String jsonArr ="[value1,value2,value3,value4]";"[1,2,3]"
  • json对象{ } String jsonObject = “{key1:value1,key2:value2,key3:value3}”;
    例子:
    [1,“ab”,[],{“n”:123,“b”:“abc”}] [1, “a”:3]
    {“name” :“TOM”, “age”:12} {“aa”:“a”,[3]}

四、JSON数据解析
解析技术:

  • Android原生APl:编程相对麻烦
  • Gson框架:编码简洁,项目首选

解析方向:

  • 服务器端:将java对象(包含集合)转换为json格式字符串
  • 客户端:将json格式字符串转换为java对象(包含集合)

五、相关API
Android原生APl:

  • JsonObject类: json对象{ }
    • JSONObject(String json):将json字符串解析为json对象
    • Xxx getXxx(String name):根据name,在json对象中得到对应的Value
  • JsonArray类: json数组[ ]
    • JSONArray(String json):将json字符串解析为json数组
    • int length():得到json数组中元素的个数
    • Xxx getXxx(int index):根据下标得到json数组中对应的元素数据
      Gson框架API
  • Gson :能解析json数据的类
    • Gson():构造对象的方法
    • String toJson(Object src):将对象转换为对应格式的json字符串
    • T fromJson(String json, Type typeofT):解析Json字符串,得到对象
  • TypeToken :用来得到Type的类
  • protected TypeToken():受保存的构造方法
  • Type getType():得到类型对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值