JSON 解析

简介

JSON: JavaScript Object Notation JS对象简谱,是一种轻量级的数据交换格式。

优点:

  • 程序员解析起来比XML简单
  • 机器解析起来比XML快
  • 传输时体积小,传输速度快

JSON对象格式

    { 
        "name":"金苹果", 
        "info":"种苹果" 
    }

        一个对象,由一个大括号表示。
        括号中描述对象的属性。通过键值对来描述对象的属性(可以理解为,大括号中,包含的是一个个的键值对) 
        格式:
            键与值之间使用冒号连接,多个键值对之间使用逗号分隔。
            键值对的键应使用引号引住(通常Java解析时,键不使用引号会报错。而JS能正确解析)
            键值对的值,可以是JS中的任意类型的数据

数组格式

在JSON格式中可以与对象互相嵌套 
    [元素1,元素2...]

案例

{ 
    "name":"张三", 
    "age":18, 
    "friends":["李四","王二","麻子",{ 
        "name":"罗翔老师", 
        "info":"法外狂徒" 
    }], 
    "length":{ 
        "name":"大宝剑", 
        "length":"18cm" 
    } 
}

JSON在Java中的应用

  • 将Java中的对象 快速的转换为 JSON格式的字符串
  • 将JSON格式的字符串,转换为Java的对象

JSON 解析

GSON

谷歌下的JSON解析

将对象转换为JSON字符串

转换JSON字符串的步骤: 
	1. 引入JAR包 
    2. 在需要转换JSON字符串的位置编写如下代码即可: 
		String json = new Gson().toJSON(要转换的对象); 

案例:
	Book b = BookDao.find(); 
	String json = new Gson().toJson(b); 
	System.out.println(json);

将JSON字符串转换为对象

1. 引入JAR包 
2. 在需要转换Java对象的位置, 编写如下代码: 
	对象 = new Gson().fromJson(JSON字符串,对象类型.class); 

案例:
	String json = "{\"id\":1001,\"name\":\"张三罪恶的一生\",\"author\":\"罗祥老师\",\"info\":\"法外狂徒\",\"price\":998.0}"; 
	Book book = new Gson().fromJson(json, Book.class); 
	System.out.println(book);

FastJson

阿里下的JSON解析

将对象转换为JSON字符串

转换JSON字符串的步骤: 
	1. 引入JAR包 
    2. 在需要转换JSON字符串的位置编写如下代码即可: 
		String json=JSON.toJSONString(要转换的对象); 

案例:
	Book b = BookDao.find(); 
	String json=JSON.toJSONString(b); 
	System.out.println(json);

将JSON字符串转换为对象

1. 引入JAR包 
2. 在需要转换Java对象的位置, 编写如下代码: 
	类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 
	或 
    List<类型> list=JSON.parseArray(JSON字符串,类型.class); 

案例:
	String json = "{\"id\":1001,\"name\":\"张三罪恶的一生\",\"author\":\"罗祥老师\",\"info\":\"法外狂徒\",\"price\":998.0}"; 
	Book book = JSON.parseObject(json, Book.class); 
	System.out.println(book);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值