JS操作JSON详细总结
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:
1.一种为使用eval_r()函数。
2. 使用Function对象来进行返回解析。
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
第一种解决方法:
var dataObj=eval_r("("+data+")");//转换为json对象
为什么要 eval这里要添加 “("("+data+")");//”呢?
原因在于:eval本身的问题。由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval_r("{}"); // return undefined
alert(eval_r("({})");// return object[Object]
对于这种写法,在JS中,可以到处看到。
如: (function()) {}(); 做闭包操作时等。
var str1 = '{ "name": "cxh", "sex": "man" }';
var data=eval_r("("+str1+")");//转换为json对象//data =(new
alert (data.name);//会显示出cxh
这里特别需要注意的是方式1中的eval_r()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval_r()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。
第二种解决方法:
第二种解析方式就是使用Function对象来完成,它的典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析
var str1 = '{ "name": "cxh", "sex": "man" }';
var data = (Function("","return "+str1))();
alert (data.name);//会显示出cxh
相关推荐
-
jQuery遍历json的方法(推荐)
var obj = {"status":1,"bkmsg":"\u6210\u529f","bkdata":["\u5415\u5c1a\u5fd7","1387580400","\u6dfb\u52a0\u8bb0\u5f55"]}{"status":1,"bkmsg":"\u6210\u529f",&qu
-
Java中使用json与前台Ajax数据交互的方法
本文主要为大家分享了Ajax获取显示Json数据的一种方法,供大家参考,具体内容如下 1.首先前台用Ajax,其中注意dataType一定要选择json方式,Action成功返回给页面的Json内容是这样的[{"number":"V006","names":"LiLei"}],可见comment['names']对应"names":"LiLei",comment['number']对
-
lua中操作json数据的方法
用lua的cjson包就行了. 下载地址在这里 http://www.kyne.com.au/~mark/software/lua-cjson.php 安装的话,make&make install就行了. 复制代码 代码如下: local cjson = require("cjson") local str = '["a", "b", "c"]' local j = cjson.decode(str) for i,v
-
js处理json以及字符串的比较等常用操作
js处理json格式的插入.修改.删除,以及字符串的比较等常用操作 demo 1: json格式的插入.删除 复制代码 代码如下: <html> <head> <title></title> <script language="javascript"> function change(){ var obj=document.getElementById("floor"); if (document.getE
-
Java Web程序实现返回JSON字符串的方法总结
基础铺垫 在java中,关于json的lib有很多,比如jackjson.fastjson.gson等等,本人都用过,但是对于我等只需要让java对象返回json字符串即可的程序员来说,还是显得过于繁重.而且有些功能定制性很差,比如一个java对象的属性为空时,这些组件都不会输出,于是本人在页面循环遍历列表对象时,总是得判断此属性是否为undefined,这一点让本人很不满意.所以决定花点时间研究下到底是怎么回事. 但经过一上午的细看,发现不管是fastjson还是gson都代码都写得相当的复杂
-
JS操作JSON方法总结(推荐)
JSON概述: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不需要任何特殊的 API 或工具包. JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解
-
浅谈PHP中JSON数据操作
JSON,全称是JavaScript Object Notation.它是基于JavaScript编程语言ECMA-262 3rd Edition-December 1999标准的一种轻量级的数据交换格式,主要用于跟服务器进行交换数据.跟XML相类似,它独立语言,在跨平台数据传输上有很大的优势 新建文件json.php,先做encode操作: //encode //生成JSON格式数据 $arr = array(1,2,3,4,5,6,7,8,9,'Hello','PHP'); echo jso
-
jQuery操作JSON的CRUD用法实例
本文实例讲述了jQuery操作JSON的CRUD用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xht
-
JS操作JSON详细总结
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval_r()函数. 2. 使用Function对象来进行返回解析. 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键.例如: JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象:va
-
JS操作JSON要领详细总结
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 本文主要是对JS操作JSON的要领做下总结. 在JSON中,有两种结构:对象和数组. 1. 一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟
-
3分钟掌握常用的JS操作JSON方法总结
工作中做了几款自动化测试工具都是跟日志读取相关,日志格式又大多数都是JSON,所以这里把常用的JS操作JSON的方法做了总结~~ 一.概要简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在JSON中,有两种结构:对象和数组 1.对象以"{"开始,"}"结束,"key
-
Javascript中JSON数据分组优化实践及JS操作JSON总结
现有一堆数据,我需要按时间进行分组,以便前端视图呈现 [ {"date":"2017-12-22","start_time":"10:00:00","end_time":"10:00:00","status":"Performance Time"}, {"date":"2017-12-22","st
-
JS操作json对象key、value的常用方法分析
本文实例讲述了JS操作json对象key.value的常用方法.分享给大家供大家参考,具体如下: 一.定义JSON对象 // 首先定义一个json对象,对象以"{"(左括号)开始,"}"(右括号)结束 // 花括号内为键.值对 键必须用引号括起来,值若不是字符串则不必 var jsonObj = { "创维电视" : 50, "卡萨帝北京" : 40, "家电" : 40, "松下" :
-
JS操作JSON常用方法(10w阅读)
一.概念简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在JSON中,有两种结构:对象和数组. 1.对象 var packJson = {"name":"Liza", "password":"1
-
JS中操作JSON总结
SON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 本文主要是对JS操作JSON的要领做下总结. 在JSON中,有两种结构:对象和数组. 1. 一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一
-
javascript操作JSON的要领总结
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 本文主要是对JS操作JSON的要领做下总结. 在JSON中,有两种结构:对象和数组. 1. 一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟
-
原生js调用json方法总结
Ajax基础 ajax:无刷新数据读取,读取服务器上的信息 HTTP请求方法: GET:用于获取数据,如浏览帖子 ajax.judgeXmlHttpRequest('get', 'index.php', function(data){ alert(data); //这是服务器返回的数据 }) POST:用于上传数据,如用户注册 var dataJson = { name: 'ys',age: 123 } ajax.judgeXmlHttpRequest('post', 'index.php',
随机推荐
- vue.js入门教程之绑定class和style样式
- iis 多少用户共用一个应用程序池是什么意思?
- js输入中文效果
- JavaScript数组去重的几种方法效率测试
- asp.net Accee数据库连接不稳定解决方案
- ASP.NET2.0中数据源控件之异步数据访问
- php MySQL与分页效率
- php实现数组筛选奇数和偶数示例
- JSP教程(二)
- 简单谈谈MySQL中的int(m)
- 快速掌握Node.js之Window下配置NodeJs环境
- php多个文件及图片上传实例详解
- jQuery 获取多选框的值及多选框中文的函数
- 详解PowerDesigner之CDM、PDM、SQL之间转换
- SQL命令大全-中英文对照第1/3页
- 更改IE收藏夹、历史记录存放路径的方法
- Java中绝对值函数的介绍与其妙用
- Java网络通信基础编程(必看篇)
- java单向链表的实现实例
- 浅谈Android PathMeasure详解和应用