关于网友提出的“ js中关于json的获取值引申出方括号和点号的疑惑”问题疑问,本网通过在网上对“ js中关于json的获取值引申出方括号和点号的疑惑”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: js中关于json的获取值引申出方括号和点号的疑惑
描述:var obj={ "programmers": [ { "firstName": "Brett", "lastName":"McLain", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
]}
其中 obj.programmers[0].lastname
获取的就是“McLain”,那这样 obj[programmers][0][lastname]
这样全部改成方括号,可以吗? 那这样obj.programmers.0.lastname
的话呢?有点晕了。。。按理来说第一种我更容易理解,比较方括号里面本来就是放下标号的,应该就是数字才对,然后点号对应key,但是我看有些人在方括号里放key,也可以?
还有就是我要修改value的话,上面三种方式也都可以吗?
解决方案1:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects
一个对象的属性名可以是任何有效的 JavaScript 字符串,,或者可以被转换为字符串的任何东西,包括空字符串。然而,一个属性的名称如果不是一个有效的 JavaScript 标识符(例如,一个有空格或短横线,或者以数字开头的属性名),就只能通过方括号标记访问。
可以的是 obj["programmers"][0]["lastName"]
和 obj.programmers[0].lastName
obj.programmers.0.lastName
0不是一个有效的标识符 所以不可行
以上介绍了“ js中关于json的获取值引申出方括号和点号的疑惑”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2957710.html