`
Everyday都不同
  • 浏览: 722602 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

关于json之中括号和点号的取(赋)值的区别

阅读更多

看下面这个例子:

<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。。

 

  • 大小: 5.5 KB
分享到:
评论

相关推荐

    快速访问json数据

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间交换数据。它以易于人类阅读和编写,同时也易于机器解析和生成。本篇将深入探讨如何快速访问JSON数据,以便在实际...

    28_JQuery的JSON支持

    例如,可以使用`.each()`遍历JSON数组,或者通过点号`.`或方括号`[]`访问JSON对象的属性: ```javascript $.each(json.array, function(index, item) { console.log(item.property); }); var value = json.object...

    JSON知识点详解.pdf

    JSON与JavaScript对象有显著不同之处在于,JSON数据格式中不允许使用函数,以及JavaScript中的undefined值,在JSON中必须表示为字符串或其他已定义的数据类型。 JSON在Web应用中常见的用途是用于数据交换。它经常被...

    JS对象之JSON详解[参考].pdf

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,它基于JavaScript的一个子集,采用完全独立于语言的文本格式,同时也易于人阅读和编写,也易于机器解析和生成。JSON的设计目标是成为理想的数据...

    Jquery遍历json的两种数据结构[参照].pdf

    可以使用`eval()`函数将JSON字符串转化为JavaScript对象,然后通过点号或方括号访问其属性。但需要注意的是,`eval()`可能存在安全风险,因此推荐使用`JSON.parse()`(现代浏览器支持)或`jQuery.parseJSON()`...

    Jquery遍历json的两种数据结构.pdf

    对于简单的JSON对象,可以直接通过点号或方括号访问其属性: ```javascript var strJSON = "{name:'admin'}"; var obj = eval("(" + strJSON + ")"); alert(obj.name); // 输出 "admin" ``` 在发送AJAX请求时,...

    一个很小的135B实用程序用于安全地写入深度对象值

    标题中的“一个很小的135B实用程序用于安全地写入深度对象值”指的是一个JavaScript编程中的轻量级工具,其大小仅为135字节。这样的工具通常旨在优化性能,减少代码体积,适用于对资源有限的环境,如Web应用的前端...

    Extjs 03 入门

    通过点号表示法或中括号表示法,我们可以轻松访问和操作这些数据。 #### 3.1.3 使用逗号分隔参数列表配置组件实例 配置信息提示框组件(`Ext.Msg.alert`)是最常见的应用场景之一。通过逗号分隔的参数列表,我们...

    FLEX培训总结

    变量和常量的声明格式为`变量:类型`,访问对象属性和方法使用点号(.)。函数声明通常以访问修饰符(如`public`或`private`)开始,接着是`function`关键字、函数名、参数列表和返回类型。AS3的包结构类似于Java,...

    JavaScript学习笔记 概括了所有的javaScript语法 用法

    AJAX(异步JavaScript和XML)用于实现页面无刷新的数据交互,实际应用中多使用JSON代替XML。Fetch API是现代浏览器中用于发起HTTP请求的新标准,相比XMLHttpRequest,它具有更好的可读性和错误处理机制。 八、模块...

    典型的Javascript实例

    JavaScript,作为一种广泛应用于网页和网络应用的脚本语言,是前端开发的核心技术之一。它以其动态、弱类型和解释执行的特性,使得开发者能够轻松实现交互性丰富的网页效果。在这个"典型的Javascript实例"中,我们...

    常用的107条Javascript

    JavaScript,作为全球最广泛使用的编程语言之一,是创建动态网页和交互式应用程序的关键。下面将详细探讨标题中提及的“常用的107条JavaScript”知识点,包括基础类型、对象、函数以及它们在实际开发中的应用。 1. ...

    JS基础笔记

    JavaScript,简称JS,是Web开发中的核心技术之一,广泛用于网页和网络应用的动态化和交互性。本笔记将深入探讨JS的基础知识,帮助你构建坚实的编程基础。 一、变量与数据类型 在JavaScript中,变量的声明使用`var`,...

    常用Javascript语句

    数据类型包括基本类型(如字符串、数字、布尔值)和引用类型(如对象、数组、null、undefined)。 2. **控制流语句** - `if...else`用于条件判断,根据条件执行不同的代码块。 - `switch...case`提供多分支选择,...

    浅谈js中对象的使用

    在JavaScript编程语言中,对象是核心概念之一,是存储多种类型数据的容器。...以上就是关于JavaScript中对象使用的详细介绍,掌握了对象的基本概念和操作,将会大大提升JavaScript编程的效率和能力。

    JavaScript速查手册

    在对象和原型方面,JavaScript采用基于原型的继承,对象可以通过构造函数创建,属性和方法可以通过点号或方括号操作符访问。原型链允许对象共享属性和方法,实现继承。ES6引入了类的概念,但其本质仍然是函数。 ...

    AJAX及使用E4X编写Web服务脚本系列

    例如,可以像操作数组或对象一样操作XML节点,使用`for...in`循环遍历XML元素,使用点号或方括号访问属性等。 5. **Web服务接口**:了解如何创建和使用Web服务接口,如RESTful API,这些接口通常用于提供AJAX调用的...

    字典

    总结,JavaScript中的字典(对象)是核心数据结构之一,理解和熟练掌握对象的使用是成为专业JavaScript开发者的关键。通过以上知识点,我们可以创建、访问、遍历、继承和扩展字典,从而高效地解决各种编程问题。在...

    js代码-测试识别键值对

    在JavaScript编程语言中,键值对(key-value pair)是一种数据结构,广泛应用于对象(object)之中。在JavaScript中,对象是由一组无序的键值对组成的,这些键是唯一的字符串,而对应的值可以是任何数据类型,包括...

Global site tag (gtag.js) - Google Analytics