さて、私はこのJSONを持っています:
{"Status":"OK!","ListaPermessi":
[{"IdPermesso":10,"Nome":"WIND_PARAMS"},
{"IdPermesso":11,"Nome":"ADMIN_SERVER"},
{"IdPermesso":21,"Nome":"REC"},
{"IdPermesso":22,"Nome":"REC_DIST"},
{"IdPermesso":23,"Nome":"REC_DIST_CR"}
]}
私のコードは:
var parsedResult = JSON.parse(result); // where result is the above JSON
if (parsedResult.Status === "OK!") {
// Set sessionStorage vars
if (typeof(Storage) !== "undefined") {
// localStorage & sessionStorage support!
sessionStorage.setItem("ListaPermessi", parsedResult.ListaPermessi);
}
else {
// Sorry! No web storage support :(
}
}
しかし...これは正しく機能していません!割り当て後、Firebugから見たsessionStorageは次のようになります。
sessionStorage:
オブジェクトの配列をjavascriptからsessionStorage変数に割り当てる適切な方法は何ですか?
JSON文字列に戻す必要があります。 JSON.stringify
メソッド:
sessionStorage.setItem("ListaPermessi", JSON.stringify(parsedResult.ListaPermessi));
これは、Webストレージが文字列のみを格納でき、デフォルトのtoString
メソッドのObject
が、これまで見てきたように「[objectObject]」を返すためです。
補足: typeof
は演算子であり、関数ではないため、括弧は必要ありません。
if (typeof Storage !== "undefined") { //...