jQueryの「投稿」リクエストに送り返すphpで大きなデータ構造を作成しました。データは次の形式で届きます
"{\"event\":{\"id\":\"5\",\"title\":\"Test Event\",\"event_ref\":\"TEST\",\"approval\":\"na\",\
データは、二重引用符がエスケープされた二重引用符で囲まれた文字列として返されます。URL ディレクトリ マーカーもエスケープされます。上記は、返される文字列のほんの一部です。
- alert(data) の場合、アラート ボックスに文字列が表示されます。
- alert(data[0]) の場合、「」が表示されます
- alert(data[event]) の場合、 undefined が表示されます。
通常、ドット表記または配列表記を使用してデータにアクセスすることはできません。外側の二重引用符を取り除き、エスケープを解除する必要があると思います。データは配列で、一部の項目は単純な値、一部はオブジェクト、一部はオブジェクトの配列です。
返されたデータにアクセスするにはどうすればよいですか? 一部のオブジェクトが欠落していることがよくありますが、構造は常に同じです。
js コードは次のとおりです。
// The login button
$("#loginButton").click( function(){
var username = $('input#login-username').val();
var password = $('input#login-passwd').val();
alert("Login button clicked with username/password: "+username+" / "+password);
$.post(
$_interface,
{ option: 'login', userID: username, pwd: password },
function(response){
if (response) {
// alert("Response = true");
$.post(
$_interface,
{ option: 'superGlobalValues', target: 'session' },
function(data){
alert(data);
}
);
} else {
alert("Response = false");
}
}
);
}
);