博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS操作JSON总结
阅读量:6551 次
发布时间:2019-06-24

本文共 1662 字,大约阅读时间需要 5 分钟。

  hot3.png

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是JavaScript 原生格式,这意味着在JavaScript 中处理JSON数据不须要任何特殊的API 或工具包。

    本文主要是对JS操作JSON的要领做下总结。
    在JSON中,有两种结构:对象和数组。
    1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:
    var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
    2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
    例如:
    var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
    为了方便地处理JSON数据,JSON提供了json.js包,地址:http://www.json.org/json.js
    在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
    JSON字符串:
    var str1 = '{ "name": "cxh", "sex": "man" }';
    JSON对象:
    var str2 = { "name": "cxh", "sex": "man" };
    一、JSON字符串转换为JSON对象
    要运用上面的str1,必须运用下面的要领先转化为JSON对象:
    //由JSON字符串转换为JSON对象
    var obj = eval('(' + str + ')');
或者
    var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
    或者
    var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
    然后,就可以这样读取:
    Alert(obj.name);
    Alert(obj.sex);
    特别留心:如果obj本来就是一个JSON对象,那么运用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用parseJSON()函数处理后会有疑问(抛出语法异常)。
    二、可以运用toJSONString()或者全局要领JSON.stringify()将JSON对象转化为JSON字符串。
    例如: www.2cto.com
    var last=obj.toJSONString(); //将JSON对象转化为JSON字符
    或者
    var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
    alert(last);
    留心:
    上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的JSON 修改了API,将JSON.stringify() 和JSON.parse() 两个要领都注入到了script 的内建对象里面,前者变成了Object.toJSONString(),而后者变成了String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。

转载于:https://my.oschina.net/wzzz/blog/148977

你可能感兴趣的文章
find命令,文件后缀名
查看>>
Illegal modifier for parameter s; only final is permitted
查看>>
多线程系列六:线程池
查看>>
5 月编程语言排行榜:Java第一,R跌出Top20
查看>>
使用SpringMVC的@Validated注解验证
查看>>
DDoS攻击新趋势:海量移动设备成为新一代肉鸡
查看>>
超详细的SN74LVC14ADR介绍,就在这里
查看>>
阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统
查看>>
手把手教你设计一个百万级的消息推送系统
查看>>
关于请求被挂起页面加载缓慢问题的追查
查看>>
Python之父重回决策层,社区未来如何发展?
查看>>
Git管理代码:Git简介与安装、配置(一)
查看>>
Flutter 实现原理及在马蜂窝的跨平台开发实践
查看>>
Linux平台下可视化压测软件visual-wrk
查看>>
我的提交信息规范
查看>>
OSChina 周五乱弹 ——程序员看火影忍者被女同事鄙视了
查看>>
OSChina 周四乱弹 ——PM是这样学程序的
查看>>
OSChina 周四乱弹 —— 只有食物才能收买我的灵魂
查看>>
依赖倒置原则
查看>>
Yarn的原理与资源调度
查看>>