读取 Javascript 对象
-
08-10-2019 - |
题
我在 JavaScript 中有以下代码
var result = {
'org.apache.struts' : '4567ty5y7u8j89hjk789',
'firstName' : 'Thorpe',
'surName' : 'Obazee'
}
当我尝试读取结果时:
// this works
sys.puts(result.firstName) // returns Thorpe
sys.puts(result.surName) // returns Obazee
当我阅读其他属性时,问题就出现了
sys.puts(result.org.apache.struts) // return an error
错误:预期的“类型错误:无法读取未定义的属性“ apache”
我应该如何阅读本文才能访问我输入的信息?
解决方案
您可以使用 括号表示法 访问名称包含对点表示法无效的字符的属性:
result["org.apache.struts"]
如果您想向对象添加更多级别以便可以使用点表示法,则需要为每个级别声明另一个对象,例如:
var result = {
org: { apache: { struts: '4567ty5y7u8j89hjk789' } },
firstName: 'Thorpe',
surName: 'Obazee'
}
alert(result.org.apache.struts);
其他提示
问题是您将其添加为整个键而不是另一个对象,像这样访问它 result['org.apache.struts']
.
或者您可以更改创建结果的方式:
var result = {
org : {
apache : {
struts : '4567ty5y7u8j89hjk789'
}
}
'org.apache.struts' = '4567ty5y7u8j89hjk789',
'firstName' = 'Thorpe',
'surName' = 'Obazee'
}
问题是你的变量中有点。我猜想 JavaScript 要求将其解释为并不真正存在的嵌套对象。所以,使用
result["org.apache.struts"]
来获取该值。
您必须在对象的标签和值之间使用“:”,并将“org.apache”定义为对象。像这样:
var result = {
org: {apache: {struts: '4567ty5y7u8j89hjk789'}},
firstName: 'Thorpe',
surName: 'Obazee'
}
如果你想我们'org.apache.struts
’作为一个真正的厂牌,Andy E 的回答就是解决方案。
不隶属于 StackOverflow