3

プロジェクトでプレーンな JavaScript を使用しています。カテゴリを使用して次の例の値を取得するにはどうすればよいですか? true か false かを検出する必要があります。

{
    "category": "true"
}

オブジェクト全体を取得できますが、カテゴリの値を取り出したいだけです。


コメントから...

JSON データは、フォームの送信に基づいてサーバーから返されます。myObject が定義されていないと言い続けます。JavaScript が応答を読み取れるようにするには、どうすればこれを渡すことができますか?

コメントから...

this: を使用して myObject を取得できますif (form.XHR.status === 200) {var data = form.XHR.response;}が、実行しようとするとdata.myObject未定義と表示されます。

4

5 に答える 5

5

オブジェクトとしてアクセスする前に、JSON を解析する必要があります...

if (form.XHR.status === 200) {
    var data = form.XHR.response;

    var parsed = JSON.parse(data);

    alert(parsed.category);
}

なぜこれが必要なのですか?JSON は JavaScript ではないためです。この 2 つの用語は同義ではありません。

JSON は、テキスト データ交換形式です。与えられた言語のデータ構造に解析する必要があります。あなたの場合、言語は JavaScript であるため、JavaScript データに解析する必要があります。

xhr レスポンスから受信する場合は、すべてのテキスト データを JavaScript で処理する形式で受信します。それはとしてstringです。文字列として、表される値に直接アクセスすることはできません。

JavaScript には と呼ばれるパーサーが組み込まれていJSON.parseます。これは、上記の例で必要な変換を行うために使用されました。

一部の古いブラウザは をサポートしていませんJSON.parse。これらのブラウザーをサポートしている場合は、http://json.orgで JavaScript パーサーを見つけることができます。

于 2012-06-27T16:38:09.060 に答える
2

First of all you need a variable to refer it:

var obj = {
    "category": "true"
};

Then can you say e.g:

alert(obj.category);
于 2012-06-27T16:23:19.293 に答える
1
var myObject = { "category": "true"};

alert (myObject.category);

しかし、あなたはおそらく望むでしょう:

var myObject = { "category": true};

...真/偽をテストする場合:

if (myObject.category) {
    // category is true, so do your stuff here.
}
于 2012-06-27T16:24:08.420 に答える
0

「.」を使用して json オブジェクト データにアクセスできます。または [キー] このように:

var obj = {
    "category": "true"
};
console.log(obj.category);   
// Or
console.log(obj["category"]);

デモはこちら

于 2012-06-27T16:29:28.660 に答える