1 json定义
JSON(JavaScript Object Notation)是一种数据交换格式(两种语言相互传递数据使用的格式)
2 结构
json有两种结构
a) 对象:是一种键值对,结构为:{k1:v1,k2:v2}
<body>
<script type="text/javascript">
function testjson(){
//1,原始写法
var personObj = new Object();
personObj.name = "zhangsan";
personObj.age = 19;
console.log(personObj.name);
//json 结构:对象
var person = {"name":"zhangsan","age":18}
console.log(person.name);
}
</script>
</body>
b) 数组:只有值,结构为[v1,v2]
<body>
<script type="text/javascript">
function testjson(){
//原始写法
var arr = new Array();
//json 结构:数组
var persons = [{"name":"zhangsan","age":17}, {"name":"lisi","age":16},{"name":"wangwu","age":20}];
console.log(persons[1].age)
}
</script>
</body>
3 json作用
a) 在js中的使用:
i. 将json对象转化为json格式的字符串:JSON.stringify()。(作用是方便传输交互)
<body>
<script type="text/javascript">
function testjson(){
var p = {"name":"zhangsan","age":21};
var pstr = JSON.stringify(p);
console.log(pstr);
}
</script>
</body>
ii.将json格式的字符串转化为json对象:JSON。parse()。(作用是方便操作代码)
<body>
<script type="text/javascript">
function testjson(){
var p 2= '[{"name":"laoxiao","age":18},{"name":"laodeng","age":18}]';
var p2str = JSON.parse(p2);
console.log(pArray[1].name);
}
/ //eval()也可以解析json格式的字符串
//eval函数:解析字符串格式的js代码,若解析成功,执行该js代码
eval("var ps = "+p2str);
console.log(ps[1].name);
</script>
</body>
b) 在java中的作用:
i.将json格式的字符串转化为java bean (反序列化)fastjson(阿里巴巴开发的)
ii.将java bean转化为json格式的字符串 (序列化)
public class TestJson {
public static void main(String[] args) {
//1.将json格式的字符串转化为java bean (反序列化)
String str = "{\"id\":23,\"username\":\"zhangsan\",\"password\":\"123456\"}";
User user = JSON.parseObject(str, User.class);
//2.将java bean转化为json格式的字符串 (序列化)
User user2 = new User(123, "laowang", "123456", "老王", "110");
String jsonString = JSON.toJSONString(user2);
System.out.println(jsonString);
}
}