1

非常に単純なオブジェクトのプロパティへのアクセスに問題があります。初心者のプログラマーとして、私は自分が何を扱っているのかを正確に誤解していると思います。

実行中のコードは次のとおりです。

    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 形式で移動するようです。

助けてくれてありがとう!ほんとうにありがとう。

4

3 に答える 3

5

これは実際には文字列のように見えcontent、文字列内の文字を単純に繰り返し処理しています。これを試して、必要なものが得られるかどうかを確認してください。

var contentJson = JSON.parse(content);
for (var x in contentJson) {
    console.log(contentJson[x]);
}

これにより、文字列が適切な JavaScript オブジェクトに解析contentされ、そのプロパティにアクセスできるようになります。

于 2013-08-15T19:41:06.633 に答える
3

問題はあなたがどのように定義しているかのように私には見えますcontent。あなたはこれをやっていますか?

content = '{"title":"test","description":"test"}';

またはあなたはこれをやっていますか?

content = {"title":"test","description":"test"};

注: 最初のものは全体が一重引用符で囲まれていますが、2 番目のものは何もありません。

于 2013-08-15T19:44:57.560 に答える
2

オブジェクトのコンテンツは JSON 文字列形式です。これを行うと、目的の結果が得られます。

content = JSON.parse(content);
console.log(content);
console.log(content.title);
for (x in content){
    console.log(content[x])
}

JSON 形式であることがわかるのは、キー値が引用符で囲まれているためです。オブジェクト形式の場合、引用符は表示されません。

以下の違いを参照してください。

コンソール出力時の JSON 文字列 {"key1":1,"key2":"two"}

コンソール出力時のオブジェクト {key:1,key2:"two"}

于 2013-08-15T19:42:40.677 に答える