js如何操作json字符串
js如何操作json字符串
js如何操作json字符串一、要想熟练的操作json数据,就先要了解json数据的结构,json有两种结构:对象和数组
1、对象
var jsonObj= {"str":"abc","intstr":1322323456,"max":6753,"time":"2012-10-19"};
2. 数组是值(value)的有序集合。一个数组以“[” 开始,“]”结束。值之间运用 “,”分隔。例如:
var jsonList=
[
{
"str":"abc",
"intstr":1322323456,
"max":6753,
"time":"2012-10-19"
},
{
"str":"cde",
"intstr":782144556,
"max":15400,
"time":"2012-10-19"
}
];
一个详细的 json 格式数据实例
// 描述一个人 var person = { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true } // 获取这个人的信息 var personAge = person.Age; // 描述几个人 var members = [ { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true }, { "Name": "John", "Age": 20, "Company": "Oracle", "Engineer": false }, { "Name": "Henry", "Age": 45, "Company": "Microsoft", "Engineer": false } ] // 读取其中John的公司名称 var johnsCompany = members[1].Company; // 描述一次会议 var conference = { "Conference": "Future Marketing", "Date": "2012-6-1", "Address": "Beijing", "Members": [ { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true }, { "Name": "John", "Age": 20, "Company": "Oracle", "Engineer": false }, { "Name": "Henry", "Age": 45, "Company": "Microsoft", "Engineer": false } ] } // 读取参会者Henry是否工程师 var henryIsAnEngineer = conference.Members[2].Engineer;
二、在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
var obj = eval('(' + strJson字符串 + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name);
Alert(obj.sex);
特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会抛出语法异常。
三、JSON的优点
1、基于纯文本,跨平台传递极其简单;
2、Javascript原生支持,后台语言几乎全部支持;
3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;
4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;
5、容易编写和解析,当然前提是你要知道数据结构;
6、JSON的缺点当然也有,但在作者看来实在是无关紧要的东西,所以不再单独说明。
四、JSON的格式或者叫规则
JSON能够以非常简单的方式来描述数据结构,XML能做的它都能做,因此在跨平台方面两者完全不分伯仲。
1、JSON只有两种数据类型描述符,大括号{}和方括号[],其余英文冒号:是映射符,英文逗号,是分隔符,英文双引号""是定义符。
2、大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)。
3、上述两种集合中若有多个子项,则通过英文逗号,进行分隔。
4、键值对以英文冒号:进行分隔,并且建议键名都加上英文双引号"",以便于不同语言的解析。
5、JSON内部常用数据类型无非就是字符串、数字、布尔、日期、null 这么几个,字符串必须用双引号引起来,其余的都不用,日期类型比较特殊,这里就不展开讲述了,只是建议如果客户端没有按日期排序功能需求的话,那么把日期时间直接作为字符串传递就好,可以省去很多麻烦。
- nodejs游戏服务端框架(如何写Node.JS版本小游戏)
- pythonjson格式化原理(详解pythonstr与json类型转换)
- js操作iframe
- js原生tab栏切换(JavaScript实现简易tab栏切换案例)
- js中Math对象的用法
- MVC中JSON字符长度超出限制
- extjs多选下拉框
- 用js编写tab栏切换(JavaScript实现简易tab栏切换内容栏)
- mysql xml转换json(Mysql将查询结果集转换为JSON数据的实例代码)
- nodejs请求页面(node.js+postman实现模拟HTTP服务器与客户端交互)
- 利用前端做扫雷游戏(js实现经典扫雷游戏)
- SQLServer中JSON文档型数据的查询问题解决(SQLServer中JSON文档型数据的查询问题解决)
- vue双向数据绑定js如何实现(纯JS如何实现vue.js下的双向绑定功能)
- js判断对象是否存在
- 延迟加载js文件
- js实现商品添加(js实现购物网站放大镜功能)
- 红色代表什么(红色代表什么寓意)
- 蓝天代表什么(蓝天代表什么生肖)
- 今天要吃什么(今天要吃什么菜)
- 营养餐是什么(学校营养餐是什么)
- 谁说女子不如男 范冰冰演的武则天只是其一,另外两位你认识吗(谁说女子不如男)
- 杯酒人生---瓦伦丁酒杯和奥丁格啤酒(杯酒人生---瓦伦丁酒杯和奥丁格啤酒)
热门推荐
- 什么是高内聚、低耦合
- 普通人如何申请阿里云账号(怎么注册阿里云账号 阿里云帐号怎么申请)
- 解释mysql慢查询(MySQL Threads_running飙升与慢查询的相关问题解决)
- phpstudy的默认网站根目录是什么(phpstudy v8.0创建本地站点域名教程图文)
- 服务器怎么做到实时备份(香港云服务器数据备份周期多久最好?)
- python的编码方式(Python中文编码知识点)
- sqlserver备份整表数据的语句(SqlServer批量备份多个数据库且删除3天前的备份)
- dubbo和项目搭建(使用docker部署dubbo项目的方法步骤)
- pythondict排序原理(Python标准库使用OrderedDict类的实例讲解)
- python怎么输出一个矩阵(python实现转圈打印矩阵)