当前位置: 首页 > news >正文

json恶补

JS操作JSON总结

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字符串。

    例如:

    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() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。

转载于:https://www.cnblogs.com/1234cjq/p/5652415.html

相关文章:

  • mybatis实战教程(mybatis in action)之三:实现数据的增删改查
  • 在代码中修改TextView的DrawableRight图片
  • MongoDB-基础-limit-skip-sort
  • Python 安装模块 模块搜索路径
  • Android第三十天
  • nbsp
  • [改善Java代码]非稳定排序推荐使用List
  • Round 0: Regionals 2010 :: NEERC Eastern Subregional
  • 远程桌面卡
  • 二、ssh 协议:SSH 验证协议 —— 公钥认证
  • 安装程序时出现2502 2503错误解决方法
  • html5配合css3实现带提示文字的输入框(摆脱js)
  • AWS EC2 Run Command特性新增多重云脚本
  • 京东区域表整理
  • ubuntu下安装jdk
  • ➹使用webpack配置多页面应用(MPA)
  • 30天自制操作系统-2
  • Git的一些常用操作
  • happypack两次报错的问题
  • laravel 用artisan创建自己的模板
  • Laravel 中的一个后期静态绑定
  • Mac转Windows的拯救指南
  • Nacos系列:Nacos的Java SDK使用
  • Python socket服务器端、客户端传送信息
  • Python 基础起步 (十) 什么叫函数?
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 代理模式
  • 排序算法之--选择排序
  • 区块链技术特点之去中心化特性
  • 如何设计一个比特币钱包服务
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 《码出高效》学习笔记与书中错误记录
  • # 飞书APP集成平台-数字化落地
  • #1015 : KMP算法
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (145)光线追踪距离场柔和阴影
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C#)一个最简单的链表类
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Oracle)SQL优化技巧(一):分页查询
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (循环依赖问题)学习spring的第九天
  • (一)WLAN定义和基本架构转
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 发展历程
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net 使用ajax控件后如何调用前端脚本
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .pyc文件是什么?
  • .so文件(linux系统)
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)