访问Javascript对象属性问题
我在访问一个非常简单的对象的属性时遇到问题。作为一个新手程序员,我怀疑我对自己的工作有一个简单的误解 以下是正在执行的代码:访问Javascript对象属性问题,javascript,object,angularjs,properties,Javascript,Object,Angularjs,Properties,我在访问一个非常简单的对象的属性时遇到问题。作为一个新手程序员,我怀疑我对自己的工作有一个简单的误解 以下是正在执行的代码: console.log(content); console.log(content.title); for (x in content){ console.log(content[x]) } 下面是控制台的响应: {"title":"test","description":"test"} undefined { " t i
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格式移动数据
谢谢大家的帮助!非常感谢。这看起来像
内容
实际上是一个字符串,您只需在字符串中的字符上进行迭代。试试这个,看看它是否能满足您的需求:
var contentJson = JSON.parse(content);
for (var x in contentJson) {
console.log(contentJson[x]);
}
这将
内容
字符串解析为适当的JavaScript对象,您应该能够访问其属性。这看起来像内容
实际上是一个字符串,您只是在字符串中的字符上迭代。试试这个,看看它是否能满足您的需求:
var contentJson = JSON.parse(content);
for (var x in contentJson) {
console.log(contentJson[x]);
}
这将把
内容字符串解析到相应的JavaScript对象中,您应该能够访问其属性。您的对象内容是JSON字符串形式。这样做,您将获得您想要的结果:
content = JSON.parse(content);
console.log(content);
console.log(content.title);
for (x in content){
console.log(content[x])
}
您之所以能够判断自己是JSON格式的,是因为键值周围有引号。如果使用对象格式,则不会看到引号
请参见下面的差异:
输出到控制台{“key1”:1,“key2”:“two”}时的JSON字符串
对象输出到控制台时{key:1,key2:“two”}您的对象内容是JSON字符串形式。这样做,您将获得您想要的结果:
content = JSON.parse(content);
console.log(content);
console.log(content.title);
for (x in content){
console.log(content[x])
}
您之所以能够判断自己是JSON格式的,是因为键值周围有引号。如果使用对象格式,则不会看到引号
请参见下面的差异:
输出到控制台{“key1”:1,“key2”:“two”}时的JSON字符串
对象输出到控制台时{key:1,key:2:“two”}在我看来,问题在于如何定义内容。你在这么做吗
content = '{"title":"test","description":"test"}';
content = {"title":"test","description":"test"};
还是你在这么做
content = '{"title":"test","description":"test"}';
content = {"title":"test","description":"test"};
注意:第一个将整个内容用单引号括起来,而第二个没有。在我看来,问题在于如何定义内容。你在这么做吗
content = '{"title":"test","description":"test"}';
content = {"title":"test","description":"test"};
还是你在这么做
content = '{"title":"test","description":"test"}';
content = {"title":"test","description":"test"};
注意:第一个用单引号将整个内容括起来,而第二个则没有。您能介绍一下您是如何表达您的对象的吗?您在哪里设置内容的?看起来可能是字符串而不是对象。另外,
中…的通常更麻烦,因为它是值得的。我将内容定义为一个空对象(content={}),它是根据用户输入动态添加的(使用angular.js)。我想当它被发送到服务器时,我一定是不小心把它转换成了一个字符串。你能介绍一下你是如何表达你的对象的吗?你在哪里设置内容?看起来可能是字符串而不是对象。另外,
中…的通常更麻烦,因为它是值得的。我将内容定义为一个空对象(content={}),它是根据用户输入动态添加的(使用angular.js)。我想当它被发送到服务器时,我一定是不小心把它转换成了一个字符串。+1如果你能控制内容变量的定义,这也是一个很好的答案。如果您在自己的代码中定义变量,则无需JSON.parse
。+1如果您可以控制内容
变量的定义,这也是一个很好的答案。如果在自己的代码中定义变量,则无需JSON.parse
。