一、了解Json
3.1 什么是Json
JSON
(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
简单来说,
json
字符串指的就是json
本身,由于JavaScript
是弱类型语言,所以没有办法直接传递对象或是数组,所以提出了json
格式的字符串,用于数据传递;
ajax
中,我们自己拼接的是一个JSON对象,因为它是无数据类型的,所以JS
根据其格式默认其是对象,要是往后台发,要先把它转换成JSON字符
。
从ajax
的服务器 发过来的,一定是字符串,你想要把它解析,很简单,把它先变成JSON对象才行。在数据传输过程中,
json
是以文本,即字符串的形式传递的,而JS
操作的是JSON对象
,所以JSON对象
和JSON字符串
之间的相互转换是关键。
二、简单Json语法
2.1 语法
- 一个数据的表示
- {“键1”:值1,“键2”:值2}
- 一组数据的表示
- [{“键1”:值1,“键2”:值2},{“键1”:值1,“键2”:值2}]
- JSON 对象使用在大括号 {} 中书写。
- 对象可以包含多个 **key/value(键/值)**对。
- key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
- key 和 value 中使用冒号 : 分割。
- 每个 key/value 对使用逗号 , 分割。
语法 | 描述 |
---|---|
[ ] | 表示数组 |
{ } | 表示对象 |
" " | 表示是属性名或字符串类型的值 |
: | 表示属性和值之间的分隔符 |
, | 表示多个属性的间隔符或者是多个元素的间隔符 |
3.2.1 Json语法记忆规则
- 数据在键值对里面
- 数据之间由逗号分隔
- 大括号保存对象
- 中括号保存数组
Json值 | 描述 |
---|---|
数字 | 整数或浮点数 |
字符串 | 在双引号中 |
逻辑值 | true 或 false |
数组 | 在中括号中 |
对象 | 在大括号中 |
null |
<script type="text/javascript">
//对象表示
var p = new Object();
p.name = "haha";
p.age = 20;
p.address = "beijing";
console.log(p.name + "..." + p.age + "...." + p.address);
//json表示
var p1 = {
"name": "李四", "age": 30, "address": "上海"};
console.log(p1.name + "..." + p1.age + "...." + p1.address);
var json = '{"name":"李四","age":30,"address":"杭州"}';//json字符串
var p2 = JSON.parse(json);
console.log(p2.name + "..." + p2.age + "...." + p2.address);
//要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:
//var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'
//要实现从 JSON 转换为对象,使用 JSON.parse() 方法:
//var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}
//表示数组
var arr = ["北京", "上海", "南京"];
//表示json对象数组
var arr2 = [{
name: "xxx", age: 20}, {
name: "yyy", age: 22}, {
name: "zzz", age: 30}];
</script>
三、Json字符串的手写转换
JavaBean类对象
package com.mylifes1110