json筆記

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
	var json = {
			"key":123,
			"key2":"hello",
			"key3":[1,"nihao",true],
			"key4":{
				"key4_1":99,
				"key4_2":"dani"
			},
			"key5":[{
				"key5_1":199,
				"key5_2":"dani"	
			},{
				"key5_3":199,
				"key5_4":"123dani"
			}]
	};
	/* alert(json.key5[1].key5_4); */
	
	var  str= JSON.stringify(json);
	//json轉成對象
	//alert(str);
	
	var jsonObj = JSON.parse(str);
	/* alert( jsonObj ); */
	alert( jsonObj.key3[2] );
	</script>
</head>
<body>

</body>
</html>

  

json對象由在括號括起來,對象中的屬性也就是json的key是一個字符串,因此必定要使用雙引號引發來。每組key之間使用逗號進行分隔。能夠保持的格式不少,客戶端和服務器都容易解讀javascript

	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"
			}]
	};

JSON中兩個經常使用的方法。
JSON對象和字符串對象的互轉。 注意:JSON大寫
JSON.stringify( json ); 此方法能夠把一個json對象轉換成爲json字符串
JSON.parse( jsonString ); 此方法能夠把一個json字符串轉換成爲json對象html

json在java中的操做。常見的有三種狀況。
1.java對象和json的轉換
2.java對象list集合和json的轉換
3.map對象和json的轉換java

引入谷歌Gson 的jar包json

package com.atguigu.bean;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Test;

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.reflect.TypeToken;

public class GsonTest {

    @Test
    public void getGson(){
        
        Person person = new Person(1,"張三");
        
        Gson gson = new Gson();
        
        //對象轉json格式
        String json = gson.toJson(person);
//        System.out.println(json);
//        System.out.println("==============");
        
        //json格式轉單個對象
        Person fromJson = gson.fromJson(json, Person.class);
//        System.out.println(fromJson);
        
        //一羣對象呢?
        List<Person> list = new ArrayList<Person>();
        list.add(new Person(2,"張三1"));        
        list.add(new Person(3,"張三3"));        
        list.add(new Person(4,"張三4"));        
        
        JsonElement jsonTree = gson.toJsonTree(list);
//        System.out.println(jsonTree);
        
        List<Person> fromJson2 = gson.fromJson(jsonTree, new TypeToken<List<Person>>(){}.getType());
//        System.out.println(fromJson2);
        
    }
    @Test
    public void mapJson(){
        Map<String,Person> map = new HashMap<String,Person>();
            map.put("1", new Person(1,"haha"));
            map.put("2", new Person(2,"2haha"));
            map.put("3", new Person(3,"3haha"));
            
            Gson gson = new Gson();
            JsonElement map1 = gson.toJsonTree(map);//map對象保存爲json格式
            System.out.println(map1);
            //把json格式轉換爲map對象
            Map<String,Person> fromJson = gson.fromJson(map1, new TypeToken<HashMap<String,Person>>(){}.getType());
            System.out.println(fromJson);
            
    }
    
}
View Code
相關文章
相關標籤/搜索