看下面这个例子:
<script type="text/javascript"> function set() { var outer = {}; //outer.a = 10; outer[b] = 20; var apps = ["key1", "key2"]; for(var i=0; i<apps.length; i++) { var appId = apps[i]; var a = (i+1)*10; var b = (i+1)*12; var perAppData = {"a":a, "b":b}; outer[appId] = perAppData; //var c = {}; //c[appId] = perAppData; //outer[appId] = perAppData; //outer = $.extend(outer, c); //outer.appId = perAppData; } var t = outer; alert(t.key1); alert(t['key2']); } </script>
这个例子模拟的是我今儿下午遇到的一个情况:json的嵌套!
具体情形是:有一个外层的json, 他的key是字符串 value又是一个具体的(内层)json。我需要通过循环形成这个大的(外层)json。key是变量加进去的~
这个大的json的结构对应于后台java数据结构就是Map<String, Map<String, String>>了…………
之前只知道在js中取json的值有2种方式 :第一种是用中括号json[key] 第二种是用点json.key都行,对应的也有赋值。json[key] = jsonValue和json.key = jsonValue 但只是很笼统的认知~~~~
比如上述例子模拟的情况,key是appId变量来赋值的。如果你用json.appId是不行的,你将会得到{"appId" : jsonValue}而不是理想的结果。因为此时你用json.appId时,appId会被当成一个字符串文本而不是把它当成一个变量取他对应的值,json.[appId]则是把appId当成一个变量, json.[appId]则是相当于json.key1 = {"a":10, "b":12}和json.key2 = {"a":20, "b":24}。
同理,取值的时候,如果你用 json[key2]是会报错的,因为他此时会把key2当成一个变量,它会去找key2这个变量对应的值来作为key,当然也会报错。所以需要json['key2'],等效于 json.key2.
上述demo得到的outer会是这样的:
达到了预期的效果。
综上:json.appId是把appId当成字符串作为key的 json[appId]是把appId作为变量,而取的是appId这个变量的值作为key。。
相关推荐
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间交换数据。它以易于人类阅读和编写,同时也易于机器解析和生成。本篇将深入探讨如何快速访问JSON数据,以便在实际...
例如,可以使用`.each()`遍历JSON数组,或者通过点号`.`或方括号`[]`访问JSON对象的属性: ```javascript $.each(json.array, function(index, item) { console.log(item.property); }); var value = json.object...
JSON与JavaScript对象有显著不同之处在于,JSON数据格式中不允许使用函数,以及JavaScript中的undefined值,在JSON中必须表示为字符串或其他已定义的数据类型。 JSON在Web应用中常见的用途是用于数据交换。它经常被...
JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,它基于JavaScript的一个子集,采用完全独立于语言的文本格式,同时也易于人阅读和编写,也易于机器解析和生成。JSON的设计目标是成为理想的数据...
可以使用`eval()`函数将JSON字符串转化为JavaScript对象,然后通过点号或方括号访问其属性。但需要注意的是,`eval()`可能存在安全风险,因此推荐使用`JSON.parse()`(现代浏览器支持)或`jQuery.parseJSON()`...
对于简单的JSON对象,可以直接通过点号或方括号访问其属性: ```javascript var strJSON = "{name:'admin'}"; var obj = eval("(" + strJSON + ")"); alert(obj.name); // 输出 "admin" ``` 在发送AJAX请求时,...
标题中的“一个很小的135B实用程序用于安全地写入深度对象值”指的是一个JavaScript编程中的轻量级工具,其大小仅为135字节。这样的工具通常旨在优化性能,减少代码体积,适用于对资源有限的环境,如Web应用的前端...
通过点号表示法或中括号表示法,我们可以轻松访问和操作这些数据。 #### 3.1.3 使用逗号分隔参数列表配置组件实例 配置信息提示框组件(`Ext.Msg.alert`)是最常见的应用场景之一。通过逗号分隔的参数列表,我们...
变量和常量的声明格式为`变量:类型`,访问对象属性和方法使用点号(.)。函数声明通常以访问修饰符(如`public`或`private`)开始,接着是`function`关键字、函数名、参数列表和返回类型。AS3的包结构类似于Java,...
AJAX(异步JavaScript和XML)用于实现页面无刷新的数据交互,实际应用中多使用JSON代替XML。Fetch API是现代浏览器中用于发起HTTP请求的新标准,相比XMLHttpRequest,它具有更好的可读性和错误处理机制。 八、模块...
JavaScript,作为一种广泛应用于网页和网络应用的脚本语言,是前端开发的核心技术之一。它以其动态、弱类型和解释执行的特性,使得开发者能够轻松实现交互性丰富的网页效果。在这个"典型的Javascript实例"中,我们...
JavaScript,作为全球最广泛使用的编程语言之一,是创建动态网页和交互式应用程序的关键。下面将详细探讨标题中提及的“常用的107条JavaScript”知识点,包括基础类型、对象、函数以及它们在实际开发中的应用。 1. ...
JavaScript,简称JS,是Web开发中的核心技术之一,广泛用于网页和网络应用的动态化和交互性。本笔记将深入探讨JS的基础知识,帮助你构建坚实的编程基础。 一、变量与数据类型 在JavaScript中,变量的声明使用`var`,...
数据类型包括基本类型(如字符串、数字、布尔值)和引用类型(如对象、数组、null、undefined)。 2. **控制流语句** - `if...else`用于条件判断,根据条件执行不同的代码块。 - `switch...case`提供多分支选择,...
在JavaScript编程语言中,对象是核心概念之一,是存储多种类型数据的容器。...以上就是关于JavaScript中对象使用的详细介绍,掌握了对象的基本概念和操作,将会大大提升JavaScript编程的效率和能力。
在对象和原型方面,JavaScript采用基于原型的继承,对象可以通过构造函数创建,属性和方法可以通过点号或方括号操作符访问。原型链允许对象共享属性和方法,实现继承。ES6引入了类的概念,但其本质仍然是函数。 ...
例如,可以像操作数组或对象一样操作XML节点,使用`for...in`循环遍历XML元素,使用点号或方括号访问属性等。 5. **Web服务接口**:了解如何创建和使用Web服务接口,如RESTful API,这些接口通常用于提供AJAX调用的...
总结,JavaScript中的字典(对象)是核心数据结构之一,理解和熟练掌握对象的使用是成为专业JavaScript开发者的关键。通过以上知识点,我们可以创建、访问、遍历、继承和扩展字典,从而高效地解决各种编程问题。在...
在JavaScript编程语言中,键值对(key-value pair)是一种数据结构,广泛应用于对象(object)之中。在JavaScript中,对象是由一组无序的键值对组成的,这些键是唯一的字符串,而对应的值可以是任何数据类型,包括...