Json

1 json解析

1.1 什么是json

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
形如{key1:value1,key2:value2}的数据就是json格式数据,例如{ “firstName”:“Bill” , “lastName”:“Gates” }
JSON 是轻量级的文本数据交换格式,它 独立于语言 ,更易理解
JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台

1.2 json的两种语法

Json格式可以表示对象或者数组,语法不一样

1.2.1 对象

对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key2:value2,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组或对象
比如:
①最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对":
{ “firstName”: “Brett” } 相当于==》firstName=Brett
②多个"名称 / 值对"串
{ “firstName”: “Brett”, “lastName”:“McLaughlin”, “email”: “aaaa” }

1.2.2 数组

数组在js中是中括号“[]”包裹起来的内容,数据结构为 [{key:value,key:value,…},{key:value,key:value,…}…],取值方式和所有语言中一样,使用索引获取,值的类型可以是数字、字符串、数组、对象等。
比如:
①含有1个属性的数组:
{ “people”: [
{ “firstName”: “Brett”, “lastName”:“McLaughlin”, “email”: “aaaa” },
{ “firstName”: “Jason”, “lastName”:“Hunter”, “email”: “bbbb”},
{ “firstName”: “Elliotte”, “lastName”:“Harold”, “email”: “cccc” }
]}

在这个示例中,只有一个名为 people的属性,其值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和email。
②含有多个属性的数组:
{ “programmers”: [
{ “firstName”: “Brett”, “lastName”:“McLaughlin”, “email”: “aaaa” },
{ “firstName”: “Jason”, “lastName”:“Hunter”, “email”: “bbbb” },
{ “firstName”: “Elliotte”, “lastName”:“Harold”, “email”: “cccc” }
],
“authors”: [
{ “firstName”: “Isaac”, “lastName”: “Asimov”, “genre”: “science fiction” },
{ “firstName”: “Tad”, “lastName”: “Williams”, “genre”: “fantasy” },
{ “firstName”: “Frank”, “lastName”: “Peretti”, “genre”: “christian fiction” }
]}
JSON 解析器和 JSON 库支持多种编程语言。下面介绍如何在服务器端使用java语言解析json数据

1.3 json-lib解析json

需要导入json-lib.jar,是Android内置的数据解析方式

1.3.1解析对象

解析对象是把json文本转换为一个javaBean对象
1.不带对象名

①格式:

{
   "address":"北京市","id":1001,"name":"Tom"}

②解析方法:

//  1.把json文本封装成JSONObject
JSONObject  jsonObj = new JSONObject(jsonStr);
// 2.调用JSONObject的getXxx(key)获取对应的value并封装到javaBean对象上
Person p = new Person();
p.setId(jsonObj.getInt("id"));
p.setName(jsonObj .getString("name"));
p.setAddress(jsonObj.getString("address"));

2.带对象名:

①格式:

{
   "person1":{
   "address":"深圳市","id":1001,"name":"Tom"}}

②解析方法:

JSONObject  jsonObj = new JSONObject(jsonStr).getJSONObject("person1");
Person p = new Person();
p.setId(jsonObj.getInt(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值