JSON知识点整理


提示:以下是本篇文章正文内容,下面案例可供参考

一、JSON是什么?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
  • JSON 具有自我描述性,更易理解

与XML相同之处

  • JSON 是纯文本
  • JSON 具有"自我描述性"(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

为什么使用JSON

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:

使用 XML

  • 读取 XML 文档
  • 使用 XML DOM 来循环遍历文档
  • 读取值并存储在变量中

使用 JSON

  • 读取 JSON 字符串
  • 用 eval() 处理 JSON 字符串

二、JSON格式

文本

一本书
	书名
	简介

JAVA

class Book{
	private String name;
	private String info;
	......
	...
}
Book b = new Book("人生","路遥....");
......

JavaScript

var b = new object();
b.name = "人生";
b.info = "路遥......";

XML

<book>
	<name>人生</name>
	<info>路遥......</info>
</book>

JSON

一个对象由一个大括号表示,括号中描述对象的属性,通过键值对来描述对象的属性(可以理解为:大括号中,包含的是一个个的键值对.)

格式:
  • 键与值之间使用冒号连接,多个键值对之间使用逗号分隔;
  • 键值对的键,应该使用引号引住(通常Java解析时,键不使用引号会报错,而JS能正常解析)
  • 键值对的值,可以是JS中的任意类型的数据
{
	"name":"人生"
	"info":"路遥......"
}
数组格式:
在JSON格式中可以与对象互相嵌套
[元素 1,元素 2 ...]
案例:
{
	"name":"张麻子"
	"age":18
	"pengyou":["黄老爷","县长","张探长",{	
		"name":"美金",
		"info":"刀了到了,黄老爷到了"
		}],
}

三、JAVA 与JSON

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

Gson

Google Gson是一个简单的基于Java的库,用于将Java对象序列化为JSON,也可以把JSON转换为Java对象。它是Google开发的开源库。

  • 将对象转换为json字符串
转换JSON字符串的步骤:
		1.		引入JAR包
		2.		在需要转换JSON字符串的位置编写如下代码即可:
				String json = new Gson().toJson( 要转换的对象 );
		案例:
		//1.    创建Gson对象
        Gson g = new Gson();
        Book book = new Book("1002","唐诗三百首","窗前明月光~~~");
        //2.    转换
        String s = g.toJson(book);
        //String s = new Gson().toJson(book);
        System.out.println(s);
        
		输出结果:
		{"id":"1002","name":"唐诗三百首","info":"窗前明月光~~~"}
  • 将json字符串转换为对象
		1.		引入JAR包
		2.		在需要转换JSON字符串的位置编写如下代码即可:
				对象 = new Gson().fromJson(JSON字符串,对象类型.class);
	案例:
	//1.    创建Gson对象
    Gson g = new Gson();
    //这里对象类型为HashMap
	HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"一起来种苹果\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"谁知盘中餐\"]}", HashMap.class);
        List page = (List) data.get("page");
        System.out.println(page.get(1));
        
	输出结果:
	锄禾日当午

FastJson

  • 将对象转换为json字符串
转换JSON字符串的步骤:
		1.		引入JAR包
		2.		在需要转换JSON字符串的位置编写如下代码即可:
				String json = JSON.toJSONString( 要转换的对象 );
		案例:
		Book book = new Book("1002","唐诗三百首","窗前明月光~~~");
        //    转换
        String json = JSON.toJSONString(book);
        System.out.println(json);

        运行结果:
        {"id":"1002","info":"窗前明月光~~~","name":"唐诗三百首"}
  • 将json字符串转换为对象
		1.		引入JAR包
		2.		在需要转换JSON字符串的位置编写如下代码即可:
					类型 对象名 = JSON.parseObject(JSON字符串,类型.class);List<类型> list = JSON.parseArray(JSON字符串,类型.class);
					
		案例:
		String json = "{\"id\":\"1002\",\"info\":\"窗前明月光~~~\",\"name\":\"唐诗三百首\"}";
        Book book = JSON.parseObject(json, Book.class);
        System.out.println(book.getId());
		运行结果:
		Book{id='1002', name='唐诗三百首', info='窗前明月光~~~'}

		案例2//1.    转换 :["一二三","三四五","四五六"]
        List<String> list = JSON.parseArray("[\"一二三\",\"三四五\",\"四五六\"]",String.class);
        System.out.println(list.get(1));
        
		运行结果:
		三四五

END

JSON技术需要重点掌握哦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android知识点整理包括但不限于以下内容: 1. Android基础知识: - Android系统架构和组件:包括应用层、应用框架层、系统运行库层和Linux内核层。 - Android应用的生命周期:包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)的生命周期。 - Android应用的资源管理:包括布局文件、字符串资源、图像资源等的使用和管理。 - Android应用的权限管理:包括权限的声明和请求。 2. Android界面开发: - 布局管理器:包括线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)等。 - 视图控件:包括文本视图(TextView)、按钮(Button)、图像视图(ImageView)等。 - 用户交互:包括点击事件、手势识别、触摸事件等的处理。 3. Android数据存储: - Shared Preferences:用于存储少量的键值对数据。 - SQLite数据库:用于存储结构化数据。 - 文件存储:包括内部存储和外部存储的文件存储方式。 4. Android网络编程: - 网络请求:使用HttpURLConnection或HttpClient进行网络请求。 - JSON解析:使用JSONObject或GSON库解析JSON数据。 - 图片载:使用Picasso或Glide库载网络图片。 5. Android多媒体开发: - 音频播放:使用MediaPlayer进行音频播放。 - 视频播放:使用VideoView或ExoPlayer进行视频播放。 - 相机和相册:使用Camera或Camera2 API进行拍照和录制视频。 6. Android传感器: - 速度传感器、光传感器、陀螺仪等的使用。 7. Android地图和定位: - 使用Google Maps API进行地图显示和定位功能的开发。 以上仅为Android知识点的概要,实际开发中还涉及更多的内容。希望以上信息对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huihuisir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值