JSON学习备忘录

1,前言
因为需要做个小东西,用到这个东西,所以那过来看看,做了一个初步的学习笔记,供以后自己查看。并不是很全面深入,待以后随时补充。

这个是我从写好的文档复制过来的,不知道为什么有些字体不一样。
2,学习备忘
2.1,JSON数据交换使用,非常适合JS。
2.2,用逗号分割数据,用[]保存数组,用{}保存对象。
2.3,书写格式:
名称:值
同时用””包含,”name”:”marvin”
数字值不加。
2.4,数组里面可以有多个对象,对象里面可以有数组

例子: { "employees":[ {"firstName":"John" , "lastName":"Doe"}, {"firstName":"Anna" , "lastName":"Smith"}, {"firstName":"Peter" , "lastName":"Jones"} ] } 引用: employees[0].lastName; 返回内容:Gates 可以修改:employees[0].lastName=”jobs” 注意:1,用的时候双引号是英文半角,中文是无法识别

2,JSON文件的文件类型是".json"
3,JSON文本的MIME类型是"application/json"
4,JSON最常见的用法之一,是从web服务器上读取JSON数据(作为文件或作为HttpRequest),将JSON数据转换为JavaScript对象,然后在网页中使用该数据。
说明一点:关于JS单引号双引号问题,在JS里面是一个意思,但是如果要引号嵌套或者输出,需要结合使用,比如要输出‘你好!’就要写document.write("'你好!'"),反之亦然;在SHELL里面,引号是含义不同的,详细可以看我博客里面的关于SHELL引号的介绍;

举个引号的例子:

vartxt = '{ "employees" : [' + '{"firstName":"Bill" , "lastName":"Gates"},' + '{"firstName":"George" , "lastName":"Bush"},' + '{"firstName":"Thomas" , "lastName":"Carter"} ]}'; 怎么用呢:varobj=eval ("(" + txt +")");

说明:上面的txt看懂了没?引号匹配是不是有点奇怪,我开始时候发现这个不匹配么,所以改了,结果报错,查看一下eval()函数说明,里面参数是字符串,懂了,其实很简单,上面是三个字符串连接而已,只不过凑成了json格式,蛋疼吧。
我们把上面所有单引号换成双引号,试试看?结果如何,没有输出了吧,换成单引号?不对吧。呵呵,对于JS来说,引号嵌套要换种形式,所以下面这样也是对的:
vartxt="{ 'employees' : [" + "{'firstName':'Bill','lastName':'Gates' }," + "{'firstName':'George','lastName':'Bush' }," +"{'firstName':'Thomas','lastName':'Carter' } ]}";

虽然是小问题,但是有时候会出奇怪的错误。
至于为什么使用时候非要加上(),这个因为json是以{}标记开始结束,JS会以为是一个语句块,加上()强制使JS认为是表达式才能处理这个字符串。
其实实际中推荐使用函数

varjson='{"name":"CJ","age":18}'; data=(new Function("","return "+json))();

这样就可以了。
因为:eval()函数可编译并执行任何JavaScript代码。一个潜在的安全问题。


3,后续

继续学习。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值