Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问Javascript对象属性问题_Javascript_Object_Angularjs_Properties - Fatal编程技术网

访问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