java:json库和gson库的使用(慕课网JSON快速入门Java版笔记)

一.json定义

      json是当今较为广泛使用的数据传输格式。优势在于 :简洁和清晰的层次结构,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。json与开发语言无关并且是轻量级的,是javascript Object Notation的简称。

二.简单json示例

{
	"name" : "王小二",
	"age" : 25.2,
	"birthday" : "1990-03-05",
	"school" : "蓝翔",
	"major" : ["理发", "挖掘机"],
	"has_girlfriend" : false,
	"car" : null,
	"house" : null,
	"comments" : "这是一个注释"
}

      代表了一个对象,并且是k/v的存储(键值对存储,且键必须是下述数据类型中基本类型中的string类型)

三.json中不同的数据表示

主要分两大类:1.数据结构 2.基本类型

1.数据结构中包括Object与Array两种类型

Object :包含键值对,key必须是string类型(双引号括起来的字符串),value为任意数据类型包括Object以及后面所提到的Array类型和基本类型。例:上述整个简单json示例

Array :望文生义,与java中的数组含义类似,但表达形式不同。使用中括号括起来,逗号分隔,例:["理发"', "挖掘机"]

2.基本类型

string,number,true,false,null

需要特别注意的是json格式中 number,不分int float double 数据类型,string为字符串,true,false为布尔变量,null为空对象

四.json库和gson库和commons-io库资源下载


https://pan.baidu.com/s/1-NQ7_8sEih4DRdFPpmxxrw

密码:27nj

五.json库创建json对象(JSONObject)代码示例 

共有三种方式创建json对象:

1.创建空的JSONObject,调用其put方法赋于键值对

2.将键值对用Map封装,并作为JSONObject的构造器参数传入

3.使用初始化后的Bean作为JSONObject构造器参数传入

package json;

import java.util.HashMap;
import java.util.Map;

import org.json.*;

import bean.DiaoSi;

//{
//	"name" : "王小二",
//	"age" : 25.2,
//	"birthday" : "1990-01-01",
//	"school" : "蓝翔",
//	"major" : ["理发","挖掘机"],
//	"has_girlfriend" : false,
//	"car" : null,
//	"house" : null,
//	"comments" : "这是一个注释"
//}
public class JsonObjectSample {
	public static void main(String[] args) {
		jsonObject();
		createJsonByMap();
		createJsonByBean();
	}

	/**
	 * 
	 * void
	 */
	private static void createJsonByMap() {
		// TODO Auto-generated method stub
		Map<String, Object> wang = new HashMap<>();
		Object nullObject = null;
		wang.put("name", "王小二");
		wang.put("age", 25.2);
		wang.put("birthday","1990-10-1");
		wang.put("major", new String[] {"理发", "挖掘机"});
		wang.put("has_girlfriend",false);
		// 存在二义性 null 需要创建一个对象来跳过编译器的检查
//		wang.put("car", null);
		wang.put("car", nullObject);
		wang.put("house", nullObject);
		// put 同一键 产生替代效果 
		wang.put("comment", "这是一个注释");
		System.out.println(new JSONObject(wang).toString()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值