javascript-为什么JSON的数组长度要这么算呢?

问题描述

为什么JSON的数组长度要这么算呢?
eval(data).length

为什么JSON的数组长度要这么算呢?

除了这种形式还有其他方法吗?

解决方案

使用eval()方法可以计算输入的字符串,并执行其中的JS代码,如果输入参数不是字符串,则将参数原封不动地返回。

如果data是字符串,那么eval(data).length就将字符串解析成json对象后在计算数组长度,返回的当然是数组的长度值。
如果data是对象,那么eval()就直接返回该对象,然后计算其数组长度。

这个是老方法,现在早就不用了,据说不安全,可以执行恶意代码,所以ECMAScript5对JSON数据表示方式进行了规范,提供了stringify()和parse()两个方法来完成对象序列化和字符串解析的功能。

json的数组长度如何计算要看json的数据结构如何,如果json只是一个普通数据对象,并非数组的形式,那么就没有length属性

解决方案二:
JSON.parse(data).length

解决方案三:
你的data是字符串吧,需要eval转为json对象,要不length是字符的长度,而不是json对象数组长度了。。

如果是json对象直接data.length就行了。

时间: 2024-11-03 14:07:48

javascript-为什么JSON的数组长度要这么算呢?的相关文章

对象-nodejs获取一个json数据,但是我无法求出json里面数组的长度

问题描述 nodejs获取一个json数据,但是我无法求出json里面数组的长度 上送的json如下: var test1 ={ "ENNAME": "text", "CHNAME": "哈哈哈", "SYSNAME": 1, "APPNAME": 2, "DBTYPE": 3, "ELETYPE": 4, "ELESIZE":

javascript中,name和names作为数组名,数组长度为什么不一样?

问题描述 javascript中,name和names作为数组名,数组长度为什么不一样? enter code here<head> <meta http-equiv="Content-Type"content="text/html";charset="utf-8"> <script type="text/javascript"> var names = ['张三','李四','王五','赵

有趣的JavaScript数组长度问题代码说明_javascript技巧

第一点: 复制代码 代码如下: var lennon=Array(); lennon["name"]="windy"; lennon["year"]="1989"; lennon["living"]=true; alert(lennon.length); 结果:lennon.length 为 0   原因: 用以下方式增加数组元素,将不改变数组的长度 arr["a"]=3;第二点: 复制

JavaScript中省略元素对数组长度的影响_javascript技巧

在学习<JavaScript权威指南>第六版的第7.1节中通过数组直接量创建数组时,我们可以不给数组的某个元素赋值,它就会使undefined.虽然是undefined,但我们调用数组对象的length属性时undefined也会导致length加1.有如下所示的四种情况: var undef0 = [,,]; var undef1 = [1,,]; var undef2 = [,1,]; var undef3 = [,,1]; console.log(undef0.length); cons

关于javascript数组长度问题整理

数组长度: javascript的数组不需要设定长度,会自己进行扩展,数组名.length返回元素个数  代码如下 复制代码 var arr=new Array("Saab","Volvo","BMW") alert( arr.length ) //就可以显示数组长度了 上面不是我们的重点,重点大家看下面. 第一点:  代码如下 复制代码 var lennon=Array(); lennon["name"]="win

JavaScript jQuery 中定义数组与操作及jquery数组操作_jquery

首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象 Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能 1.1 定义数组 声明有10个元素的数组 复制代码 代码如下: var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] 来调用,例如

基于JavaScript实现Json数据根据某个字段进行排序_javascript技巧

一.首先给大家介绍js中内置的 sort() 方法 此方法默认是按字母顺序对数组中的元素进行排序的,说得更精确点,是按照字符编码的顺序进行排序. 看如下例子: 当数组中元素为 数字类型 时,排序结果与我们设想的完全不同,因为默认是按照字符编码的顺序进行排序的. 解决方案:sort() 方法接收一个可选参数(此参数必须是函数),我们可以自己定义排序规则,如下图 二.  对 json 排序的具体实现 /* * @description 根据某个字段实现对json数组的排序 * @param arra

JavaScript面向对象程序设计(2) 数组

或许你会奇怪,面向对象的程序设计为什么从数组开始讲起?这是因为--其间的种种 关系吧--嘿嘿,这里先卖个关子,先来看看我们熟悉的数组在JavaScript里面是什么样 子的. 1.创建数组 在JavaScript中有很多创建数组的方法.比如使用Array函数.不过 这不是现在我们要讲述的.现在我们使用简单的方括号"[]"的办法来创建数组. var objAyyar = []; // 1 var objAyyar = [2]; // 2 var objAyyar = ["a&q

js/jquery解析json和数组格式的方法详解

 本篇文章主要是对js/jquery解析json和数组格式的方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在解析之前,我们必须弄清楚几个概念:数组,关联数组以及json之间有哪些区别和联系点?   一.概念介绍 1.数组   语法:  ECMAScript v3规定了数组直接量的语法,JavaScript 1.2和JScript 3.0实现了它.可以把-个用逗号分隔的表达式列表放在方括号中,创建并初始化-个数组.这些表达式的值将成为数组元素.例如:   var a = [1