私はこのスクリプトを持っている:JSONをトラバースする方法は?
<script>
function postForm() {
$.post("rest/login", $("#myform").serialize()).done(function(data) {
if(data.status === "OK"){
window.location.replace("coursesform.jsp");
alert(data);
}
else alert (data.status);
//alert("Invalid credentials. Please use the same username and password you'd use for a SoCS machine.");
});
}
</script>
私は、ログインAPIが戻って単にこの出力からもたらすものに変更:だけでなく、ユーザIDを出力するに
{"status":"OK"}
を:
方法{"status":"{au:true, id:testtutor}"}
「真」と「検定官」を抽出できますか?
私はこれを試してみました:
var obj = JSON.parse(status.data);
だから私はobj.au
を行うことができますが、私はこれを受け取る:
しかし、私は、ブラウザでこれを受け取る:
VM701:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
{{"status": "{au:true、id:testtutor}"} 'は奇妙です。これは、値が文字列である 'status'という単一のプロパティを持つオブジェクトのJSON表記です。もっと普通のバージョンは '{" au ":true、" id ":" testtutor "}}'で、これは値がオブジェクトである 'status'というプロパティを持つオブジェクトです'真と' testtutorである 'au'と' id'という2つのプロパティーを持っています。したがって、これらの値を扱う最初のステップは、使いやすい形式で出力することです。 –
'status.data'は' data.status'ではありませんか? – Barmar
問題はコントローラにあるようですが、正しいJSONを生成していません。私はあなたがJSONを手動で作成しようとしていると思うし、それを間違って、代わりにライブラリ関数を使用しています。 – Barmar