0

完全なコード:

$.post('test.php', {
id: id
},function (data) {
console.log(data);
var Server = data.response.server;
var Photo = data.response.photo;

console.log(Server);
console.log(Photo);

});

data私はjsonを取得します:

{
"server":9458,
"photo":
 "[{\"photo\":\"0d6a293fad:x\",\"sizes\":  
    [[\"s\",\"9458927\",\"1cb7\",\"PX_xDNKIyYY\",75,64],
    [\"m\",\"9458927\",\"1cb8\",\"GvDZr0Mg5zs\",130,111], 
    [\"x\",\"9458927\",\"1cb9\",\"sRb1abTcecY\",420,360], 
    [\"o\",\"9458927\",\"1cba\",\"J0WLr9heJ64\",130,111], 
    [\"p\",\"9458927\",\"1cbb\",\"yb3kCdI-Mlw\",200,171], 
    [\"q\",\"9458927\",\"1cbc\",\"XiS0fMy-QqI\",320,274],
    [\"r\",\"9458927\",\"1cbd\",\"pU4VFIPRU0k\",420,360]], 
    \"kid\":\"7bf1820e725a4a9baea4db56472d76b4\"}]", 
"hash":"f030356e0d096078dfe11b706289b80a"
}

パラメータを取得したいのですがserverphoto[photo]

このために私は使用します:

var Server = data.server;
var Photo = data.photo;

console.log(Server);
console.log(Photo);

しかし、コンコールで私は得るundefined

私はコードを使用するよりも:

var Server = data.response.server;
var Photo = data.response.photo;

console.log(Server);
console.log(Photo);

しかし、今コンソールに表示されます:

Uncaught TypeError: Cannot read property 'server' of undefined

エラーが発生する理由とパラメータの取得方法

PS: すべてのコード php と jquery はここにあります

4

3 に答える 3

0

適切なデータ型jsonを設定するだけです。デフォルトは ですstring

そして、あなたのデータは変数の直下にありdataます!

$.post('test.php', {
    id: id
},function (data) {
    console.log(data);
    var Server = data.server;
    var Photo = data.photo;

    console.log(Server);
    console.log(Photo);

}, 'json');

別の解決策は、PHP 応答に適切なヘッダーを設定することです。

Content-Type    text/javascript; charset=UTF-8

次に jQuery Intelligent Guess、適切なデータ型自体を設定します。

于 2013-09-27T14:21:25.090 に答える
0

parseJSONjQueryによって公開されたメソッドを使用できます。これにより、プロパティを次のようなタイプにマップできます。

var results = jQuery.parseJSON(jsonData);
for (int i = 0; i < results.length; i++) {
    alert(results[i].name + ":" + results[i].date);
}

データと要件に従って、入力と出力の正確な使用を微調整する必要がある場合があります。

于 2013-09-27T14:04:33.207 に答える