1、什么是 JSON
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析 和生成。 它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一 个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C, C++, C#, Java, JavaScript, Perl, Python 等)。 这些特性使 JSON 成为理想的数据交换语言。
1.1、JSON 在 JavaScript 中的使用。
在标准的 json 格式中,json 对象由在括号括起来,对象中的属性也就是 json 的 key 是一个字符串,所以一定要使用 双引号引起来。每组 key 之间使用逗号进行分隔。
1.2.1、JSON 的定义
Json 定义格式:
var 变量名 ={
“key”:value, //Number 类型
“key2”:“value”, // 字符串类型
“key3”:[], // 数组类型
“key4”:{}, //json 对象类型
“key5”:[{},{}] //json 数组
var jsons = {
"key1":"abc", // 字符串类型
"key2":1234, // Number
"key3":[1234,"21341","53"], // 数组
"key4":{ // json 类型
"key4_1" : 12,
"key4_2" : "kkk"
},
"key5": [{ // json 数组
"key5_1_1" : 12,
"key5_1_2" : "abc"
}, {
"key5_2_1" : 41,
"key5_2_2" : "bbj"
}]
};
1.1.2、JSON 对象的访问
json 对象,顾名思义,就知道它是一个对象。里面的 key 就是对象的属性。我们要访问一个对象的属性,只需要使 用【对象名.属性名】的方式访问即可。
alert(jsons.key1); // "abc"
// 访问 json 的数组属性
alert(jsons.key3[1]); // "21341"
// 访问 json 的 json 属性
alert(jsons.key4.key4_1);//12
// 访问 json 的 json 数组
alert(jsons.key5[0].key5_1_2);//"abc"
1.1.3、JSON 的两个常用方法
json 的存在有两种形式。
一种是:对象的形式存在,我们叫它 json 对象。
一种是:字符串的形式存在,我们叫它 json 字符串。
一般我们要操作 json 中的数据的时候,需要 json 对象的格式。
一般我们要在客户端和服务器之间进行数据交换的时候,使用 json 字符串。
JSON.stringify() 把 json 对象转换成为 json 字符串
JSON.parse() 把 json 字符串转换成为 json 对象
//把 json对 象 转 换 成 为json字 符 串
var jsonObjString = JSON.stringify(jsonObj); //特 别 像Java中 对 象 的 toString
alert(jsonObjString)
// 把 json 字 符 串 。 转 换 成 为 json对 象
var jsonObj2 = JSON.parse(jsonObjString);
alert(jsonObj2.key1);// 12 alert(jsonObj2.key2);// abc
1.2、JSON 在 java 中的使用(需要导入Gson包)
1.2.1、javaBean 和 json 的互转
@Test public void test1(){
Person person = new Person(1,"国哥好帅!");
// 创 建 Gson 对 象 实 例
Gson gson = new Gson();
// toJson 方 法 可 以 把 java 对 象 转 换 成 为 json 字 符 串
String personJsonString = gson.toJson(person);
System.out.println(personJsonString);
// fromJson 把 json 字 符 串 转 换 回 Java 对 象
// 第 一 个 参 数 是 json 字 符 串
// 第 二 个 参 数 是 转 换 回 去 的 Java 对 象 类 型
Person person1 = gson.fromJson(personJsonString, Person.class);
System.out.println(person1); }