1、json简介
json:全称是JavaScript Object Notation(JavaScript 对象表示法)。就是把javascript的数据封装成对象的形式,方便我们对数据的存取。
2、json语法
- json定义格式:var json = {键:‘值’,键:‘值’};
- 基本语法规则:
1.json 数据由键值对构成;
2.多个键值对之间由逗号隔开;
3.{}里面保存json对象;
4.[]里面保存数组,数组里面可以是多个json对象。
5.json值得几种情况:数字,字符串,逻辑值,数组,对象 。
3、Json的定义和获取
1.json的三种定义方式:
-
第一种:基本格式
var student = {name:"cx",age:18,address:"上海"}; alert(student.name);
-
第二种:嵌套格式 一个json对象里面包含多个json对象
var students = {students:[ {name:"name001",age:18,address:"city001"}, {name:"name002",age:18,address:"city002"}, {name:"name002",age:18,address:"city003"}, ]}; alert(students);
-
第三种:嵌套格式 定义一个多个json的对象
var students1 = [ {name:"name001",age:18,address:"city001"}, {name:"name002",age:18,address:"city002"}, {name:"name002",age:18,address:"city003"}, ]; alert(students1.length);
2.json的获取
普通获取:
-
第一种:json对象.键名
alert(student.name);
-
第二种:json对象[“键名”]
alert(student["address"]);
-
第三种:json数组[索引]
alert(students1[0].age);
循环遍历:
//获取students里面所有的键和值
//for in循环
for(var key in student){
alert(key+":"+student[key]);
//注意获取键值时不能用student.key;因为key是字符串类型的,转换之后就变成了student."key"
}
//遍历数组类型的所有值
for(var i=0 ;i<students1.length;i++){
var stu = students1[i];
//先获取每一个数组元素
for(var key in stu){//在遍历数组元素里面的所有值
alert(key+":"+stu[key]);
}
}
4、Json 与其他类型的转换
1. json对像与json字符串的相互转换
//1.json对象转换json字符串
var StudentString = JSON.stringify(student);
alert(StudentString);
//2.json字符串转换成json对象
var StudentJson = JSON.parse(StudentString);
alert(StudentJson.name);
2.java bean对象与json对象的转换
//1.java bean与json的转换
class Json001 {
public static void main(String[] args) {
Student stu = new Student("name1",18,"上海");
//先创建一个gson对象
Gson gson = new Gson();
//通过toJson()将json对象转换为字符串
String stustring = gson.toJson(stu);
System.out.println(stustring);
//通过fromJson()将字符串类型转换成Json对象
Student student = gson.fromJson(stustring, Student.class);
System.out.println(student);
}
}
3.json对象于List相互转换
//2.json对象于List相互转换
public class Json002 {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
Student stu1 = new Student("name1",18,"city1");
Student stu2 = new Student("name2",18,"city2");
Student stu3 = new Student("name3",18,"city3");
list.add(stu1);
list.add(stu2);
list.add(stu3);
Gson gson = new Gson();
String s = gson.toJson(list);
System.out.println(s);
List<Student> json = gson.fromJson(s, new TypeToken<List<Student>>() {}.getType());
System.out.println(json);
}
}
4.json对象于Map相互转换
//3.json对象于Map相互转换
public class Json002 {
public static void main(String[] args) {
Student stu1 = new Student("name1",18,"city1");
Student stu2 = new Student("name2",18,"city2");
Student stu3 = new Student("name3",18,"city3");
Map<String,Student> map = new HashMap<>();
map.put("key1",stu1);
map.put("key2",stu2);
map.put("key3",stu3);
Gson gson = new Gson();
String s = gson.toJson(map);
System.out.println(s);
Map<String,Student> json = gson.fromJson(s, new TypeToken<Map<String,Student>>() {}.getType());
System.out.println(json);
}
}