访问Javascript对象属性问题

时间:2013-08-15 19:36:59

标签: 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
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格式移动数据。

感谢大家的帮助!我真的很感激。

3 个答案:

答案 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”}