<!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之间使用逗号进行分隔。可以保持的格式很多,客户端和服务器都容易解读
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对象
json在java中的操作。常见的有三种情况。
1.java对象和json的转换
2.java对象list集合和json的转换
3.map对象和json的转换
引入谷歌Gson 的jar包
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); } }