我在访问非常简单的对象的属性时遇到问题。作为一名新手程序员,我怀疑我对我正在使用的内容有一个简单的误解。
以下是正在执行的代码:
console.log(content);
console.log(content.title);
for (x in content){
console.log(content[x])
}
以下是控制台响应:
{"title":"test","description":"test"}
undefined
{
"
t
i
t
l
e
"
:
"
t
e
s
t
"
,
"
d
e
s
c
r
i
p
t
i
o
n
"
:
"
t
e
s
t
"
}
非常感谢任何指导。
修改的
内容对象通过angular.js $ http服务发送到服务器,如下所示:
$http({
method:'post',
url:"/create/createContent",
params:{content:$scope.content}
}).
服务似乎以JSON格式移动数据。
感谢大家的帮助!我真的很感激。
答案 0 :(得分:5)
这看起来像content
实际上是一个字符串,你只是迭代字符串中的字符。试试这个,看看它是否能满足您的需求:
var contentJson = JSON.parse(content);
for (var x in contentJson) {
console.log(contentJson[x]);
}
这会将content
字符串解析为相应的JavaScript对象,您应该能够访问其属性。
答案 1 :(得分:3)
在我看来问题就是你如何定义content
。你在做这个吗?
content = '{"title":"test","description":"test"}';
你正在这样做吗?
content = {"title":"test","description":"test"};
注意:第一个用单引号括起整个东西,而第二个没有。
答案 2 :(得分:2)
您的对象内容采用JSON字符串形式。这样做,你会得到你想要的结果:
content = JSON.parse(content);
console.log(content);
console.log(content.title);
for (x in content){
console.log(content[x])
}
您可以告诉您JSON格式的方式是因为键值附近的引用。如果您使用的是对象格式,则不会看到引号。
请参阅以下差异:
输出到控制台{“key1”时的JSON字符串:1,“key2”:“two”}
输出到控制台时的对象{key:1,key2:“two”}