JSON

json在js中的使用

json定义的实例代码

// json的定义
var jsonObj = {
    "key1": 12,
    "key2": "abc",
    "key3": true,
    "key4": [11, "arr", false],
    "key5": {
        "key5_1": 551,
        "key5_2": "key5_2_value"
    },
    "key6": [{
        "key6_1_1": 6611,
        "key6_1_2": "key6_1_2_value",
    }, {
        "key6_2_1": 6611,
        "key6_2_2": "key6_2_2_value",
    }]
};

JSON的访问

// json的访问
alert(typeof (jsonObj));					// object json 就是一个对象
alert(jsonObj.key1); 		 					// 12
alert(jsonObj.key2); 		 					// abc
alert(jsonObj.key3); 		 					// true

alert(jsonObj.key4); 		 														// 得到数组[11,"arr",false]
for (var i = 0; i < jsonObj.key4.length; i++) { 		// json 中数组值的遍历
    alert(jsonObj.key4[i]);
}

alert(jsonObj.key5.key5_1);				// 551
alert(jsonObj.key5.key5_2); 			// key5_2_value

alert(jsonObj.key6); 							// 得到 json 数组
var jsonItem = jsonObj.key6[0]; 	// 取出来每一个元素都是 json 对象
alert(jsonItem.key6_1_1); 				// 6611
alert(jsonItem.key6_1_2); 				// key6_1_2_value

 JSON 的两个常用方法

1-JSON的存在有两种形式
a.对象的形式存在,称为JSON对象,常用于操作JSON中的数据
b.字符串的形式存在,称为JSON字符串,常用于在客户端和服务器之间进行数据的交换
2-JSON的两个方法
JSON.stringify (JSON对象)JSON对象转换成为JSON字符串(类似JAVA中的toString方法)
JSON.parse (字符串)JSON字符串转换成为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

JSON 在 Java 中的使用

1使用 Google 第三方 jar 包

此处内容需要回复后并刷新才能查看

2创建Gson实例,调用

toJson() 将参数转换成JSON字符串
fromJson() 将参数JSON字符串还原

JavaBean和JSON的转换

@Test
public void test1() {
    Person person = new Person(1, "cess");

    // 创建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);
}

List集合和JSON的转换

@Test
public void test2() {
    List<Person> personList = new ArrayList<>();
    personList.add(new Person(1, "cess"));
    personList.add(new Person(2, "康师傅"));

    // 把List转换为json字符串
    Gson gson = new Gson();
    String personListJsonString = gson.toJson(personList);
    System.out.println(personListJsonString);

    // List<Person> list = gson.fromJson(
    // 		personListJsonString, new PersonListType().getType());
    List<Person> list = gson.fromJson(
        personListJsonString, new TypeToken<ArrayList<Person>>(){}.getType());
    System.out.println(list);
    System.out.println(list.get(0));
}

Map集合和JSON的转换

@Test
public void test3() {
    Map<Integer, Person> personMap = new HashMap<>();
    personMap.put(1, new Person(1, "cess好帅"));
    personMap.put(2, new Person(2, "康师傅"));

    // 把 map 集合转换成为 json字符串
    Gson gson = new Gson();
    String personMapJsonString = gson.toJson(personMap);
    System.out.println(personMapJsonString);

    // Map<Integer, Person> map = gson.fromJson(
    //			personMapJsonString, new PersonMapType().getType());
    // 使用匿名内部类,不用在创建pojo对象
    Map<Integer, Person> map = gson.fromJson(personMapJsonString,
               new TypeToken<HashMap<Integer, Person>>(){}.getType());
    System.out.println(map);
    System.out.println(map.get(1));
}

 

 

阅读剩余
THE END