个人学习json的笔记

jsonxml相似,是一种存储和交换文本信息的语法,但相比xml更快、小、易解析。

 

json是纯文本的,具有层级结构,能够被JavaScript解析 --> JavaScripteval()方法,可以通过ajax传输,具有“自我描述性”即人类能够读懂,没有结束标签。

 

json处理的数据:

数据保存在类似于键值对的key:value中,key必须是字符串 --> “name”:”张三”,各个数据之间用逗号”,”分开,大括号保存对象”{}”,中括号”[]”保存数组。

{“age”:18}

{“name”:”张三”,”age”:18,”sex”:”男”} --> 等价于JavaScript中的name=”张三” age=18 sex=”男”

包含多个对象的数组(项目中数据封装进javabean返回):

{

“users”:[

{“name”:”张三”,”age”:18,”sex”:”男”},

{“name”:”李四”,”age”:18,”sex”:”男”},

{“name”:”王老五”,”age”:18,”sex”:”男”}

]

}

json支持布尔值:{“state”:true}

json支持null值:{“name”:null}

<script>

var user = [

{“name”:”张三”,”age”:18,”sex”:”男”},

{“name”:”李四”,”age”:18,”sex”:”男”},

{“name”:”王老五”,”age”:18,”sex”:”男”}

];

user[0].name; --> 获得user数组中的第一个对象的name

user[2].sex=”女”; --> user数组中的第三个对象的sex的值设置为女

</script>

访问和修改嵌套的多层json对象可以一直用.”逐层访问

删除对象属性:delete user[0].name;

 

<script>

var user ={

“name”:”李四”,

“age”:19,

“url”:[“biadu”,”google”,”taobao”,”jingdong”]

}

user.url[0]=”baidu”; --> 修改url数组中的第一个元素为“baidu

delete user.age; --> 删除user对象的age属性

</script>

 

json数据使用JSON.parse()方法转化为JavaScript对象:

{“name”:”张三”,”age”:18}

var user = JSON.parse({name:张三,age:18});转化后使用.读取对象的属性user.age

json不能存储Date()时间对象,要将对象转为字符串存储

 

JSON.parse()方法第二个参数(可省略)可以指定对象每个成员都调用一个函数

var test = ‘{“name”:”张三”,”age”:18,”createDate”:”2017-10-10”}’;

var obj = JSON.parse(text,function(key,value){

if(key = createDate){

return new Date(value); -->将符合时间格式的字符串转为时间对象

}else {

return value;

}

});

可以将函数以字符串的形式存储json中,但是这不建议。

 

使用JSON.stringify()方法可以把JavaScript对象转为字符串

<script>

var JSobj = {name:张三,age=18}; --> 生成一个JavaScript对象

var JSobj = {name:张三,createDate= new Date()}; --> 可以将时间日期转为字符串

var JSobj = [name,age,createDate]; --> 可以将数组转为字符串

var jsonString = JSON.stringify(JSobj); --> JavaScript对象转为字符串

</script>

JSON.stringify()方法会将json中的value位置的function(){}函数以及其对应的key一并删除

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值