JSON

JSON对象的定义及其使用

json对象定义格式

	var 变量名 = {
		"key" : value , // Number 类型
		"key2" : “value” , // 字符串类型
		"key3" : [] , // 数组类型
		"key4" : {}, // json 对象类型
		"key5" : [{},{}] // json 数组
	}

通过json对象进行数据访问

	json对象定义格式
	var 变量名 = {
		"key" : value , // Number 类型
		"key2" : “value” , // 字符串类型
		"key3" : [] , // 数组类型
		"key4" : {}, // json 对象类型
		"key5" : [{},{}] // json 数组
	}
	通过变量名.属性名访问
	比如要访问key1为
	变量名.key1
	如果为数组类型就继续往下点
	如要访问key3的第一个元素
	变量名.key3[0]

JSON中常用的两个方法

JSON 对象和字符串对象的互转
JSON.stringify( json );   		此方法可以把一个 json 对象转换成为 json 字符串
JSON.parse( jsonString );   	此方法可以把一个 json 字符串转换成为 json 
		var obj = {
		"a" : 12,
		"c" : "str"
		};
		// 把 json 对象转换成为字符串对象
		var objStr = JSON.stringify(obj);
		//
		alert(objStr);
		// 把 json 对象的字符串,转换成为 json 对象
		var jsonObj = JSON.parse(objStr);
		alert(jsonObj);

JSON在JAVA中使用

	我们要使用 json 和 java 中使用,我们需要使用到一个第三方的包。它就是 gson.jar
	Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串
转成一个 Java 对象,或者反过来
	json 在 java 中的常见的三种情况。
	1、java 对象和 json 的转换	
				对象转化为字符串			
					String personjson = gson.toJson(对象);
				字符串转化为对象
					Object  obj = gson.fromJson(json, Object.class);
	2、java 对象 list 集合和 json 的转换
	3、map 对象和 json 的转换
	
		package com.atguigu.gson;
		import java.util.ArrayList;
		import java.util.HashMap;
		import java.util.List;
		import java.util.Map;
		import com.google.gson.Gson;
		import com.google.gson.reflect.TypeToken;
		public class GsonTest {
		static class Person {
		private int age;
		private String name;
		public Person() {
		// TODO Auto-generated constructor stub
		}
		public Person(int age, String name) {
			this.age = age;
			this.name = name;
		}
		public int getAge() {
			return age;
		}
		public void setAge(int age) {
			this.age = age;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		@Override
		public String toString() {
			return "Person [age=" + age + ", name=" + name + "]";
		}
		}
		// 要把复杂的 json 字符串转换成为 java 对象。需要继承 TypeToken 类。
		// 并把返回的类型当成 TypeToken 的泛型注入
		static class PersonType extends TypeToken<List<Person>> {
		
		}
		public static void main(String[] args) {
			// json 操作,一定要先 new 一个 gson 对象。
			Gson gson = new Gson();
			// java 对象--json
			Person person = new Person(12, "123");
			// 把对象转成为 json 字符串
			String personjson = gson.toJson(person);
			System.out.println(personjson);
			// 把 json 字符串转换成为 java 对象
			Person p = gson.fromJson(personjson, Person.class);
			System.out.println(p);
			System.out.println("------------------------------------------");
			// 2、java 对象 list 集合和 json 的转换
			List<Person> list = new ArrayList<Person>();
			for (int i = 0; i < 3; i++) {
			list.add(new Person(10 * i, "name-" + i));
			}
			String jsonListString = gson.toJson(list);
			System.out.println(jsonListString);
			// 把 json 数组转换成为 List 对象
			// List<Person> ps = gson.fromJson(jsonListString, new PersonType().getType());
			// 我们也可以使用匿名内部类
			List<Person> ps = gson.fromJson(jsonListString, new TypeToken<List<Person>>() {
			}.getType());
			System.out.println(ps);
			System.out.println("------------------------------------------");
			// 3、map 对象和 json 的转换
			Map<String, Person> mapPerson = new HashMap<String, GsonTest.Person>();
			// 添加 person 到 map 中
			mapPerson.put("p1", new Person(1, "person-1"));
			mapPerson.put("p2", new Person(2, "person-2"));
			// 把 map 转换成为 json 对象
			String jsonMapString = gson.toJson(mapPerson);
			System.out.println(jsonMapString);
			// 通过使用匿名内部类的方式
			Map<String, Person> map = gson.fromJson(jsonMapString,
			new TypeToken<HashMap<String, Person>>() {}.getType());
			System.out.println(map);
			}
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值