如果有一种方法可以在Javascript中以JSON格式访问对象属性
It there a way to access an object property while the object is in JSON format in Javascript?
我是JS新手,一直在尝试理解对象是如何工作的。
var string = JSON.stringify({name: "X", born: 1980});
console.log(string);
// → {"name":"X","born":1980}
出于好奇,我尝试了以下方法来尝试访问属性"born",而对象是JSON格式的。
console.log(string["born"]);
// → undefined
我猜这不起作用,因为即使变量字符串是Javascript对象格式{name:"X",born:1980},调用1980,它将需要相同的表达式console.log(string["born"])。
console.log(string[""born""]);
// → Uncaught SyntaxError: Unexpected identifier
console.log(string["'"born'""]);
// → Uncaught SyntaxError: Unexpected identifier
我有一种感觉,这些代码是经验丰富的程序员会说完全没有意义的。但我还是想亲自试一试。
除了使用JSON之外,还有什么方法可以访问JSON格式的对象属性吗?解析变量字符串?此外,有人可以帮助解释为什么不同的方式,我已经尝试返回未定义或错误?这对我的理解很有帮助。
谢谢你的帮助!
不要将javascript对象字符串化。如果使用stringify,则将字符串数据类型分配给名为string的变量。有两种方法可以访问JSON对象的属性。
-
点符号
var obj = {name:"X",出生日期:1980}
console.log (obj.name);
console.log (obj.born);
-
括号
var obj = {name:"X",出生日期:1980}
console.log (obj["名称"]);
console.log (obj["出生"]);
无法访问属性,因为您的"对象"不是在内部存储或以您期望的方式表示的。
JSON.stringify()
返回一个类型为String的对象,它提供了文档中描述的属性和方法。
如果你想"访问"你的属性,你当然可以使用split()
或indexOf()
来修改你的字符串并获得值,但这可能是一个棘手和困难的方法。
我认为没有理由不使用JSON.parse()
访问您的对象的方式,它打算被使用。
将json解析回对象,或者如果您知道json包含什么,您可以尝试使用RegExp:
var string = JSON.stringify({name: "X", born: 1980});
console.log(string)
//SOLUTION 1
var object = JSON.parse(string);
console.log('from parsed json ', object['born']);
//SOLUTION 2
//warning: this regexp is simple and will not work with any input
var match = string.match(/"born":'s*(true|false|null|'d+|"[^"]*")'s*[,}]/)
console.log('from regexp ', match[1]);
http://jsfiddle.net/qu9gxcyb/因为变量string没有born-property。你有一个对象,你把它转换成字符串,如果你想从对象获得属性你必须使用对象。例如
var obj = {name: "X", born: 1980};
console.log(obj.born); // also you can write obj["born"] if you want
var string = JSON.stringify(obj); // this string doesn't have property "born" it has the whole JSON of your object
- 将数据存储在javascript数组中以供进一步使用
- 如何在jquery、javascript、HTML5中以base64字符串保存为(PDF、doc、xls、png.)
- 指定在javascript中以多种形式单击的按钮
- 如何在 JavaScript 中以递增顺序在对象中添加属性
- 如何在JavaScript中以整数形式传递版本号
- 如何在JavaScript中以天、dd/mm/yyyy格式显示昨天的日期
- 如何在时间标签和相同的类中以UTC格式重新格式化ISO 8601时间戳,并通过JavaScript根据用户区域设置和时区
- 将javascript和css内联放在一个缩小的html文件中以提高性能
- 如何在新选项卡中打开新网页后获取书签中的 JavaScript 代码以执行
- 为什么某些Javascript属性没有在调试器中以交互方式显示
- 在Javascript中以与在PHP中相同的方式存储时间
- 在本地将javascript添加到examplep中以执行数学/公式运算
- 如何在javascript中以固定的间隔多次调用函数
- 从HTML表单中获取计算得到的JavaScript数据,并将其作为新元素添加到相同的表单操作中以使用PHP保存
- 使用javascript在chrome浏览器的新选项卡中以程序方式打开URL
- 以javascript中的字符串形式从服务器读取json文件
- 如何在javascript中以URL形式发送参数
- 如何在springMVC中以javascript显示属性文件中的值
- 在javascript应用程序中以javascript的形式运行输入的文本
- If else语句在web表单中以javascript或HTML计算分数