$.ajax({
url: "get_cards.php",
type: "GET",
data: {selection:JSON.stringify(selection)},
success: function(data) {
var json = JSON.parse(data);
sessionStorage.setItem("json", JSON.stringify(json));
}
});
Następnie w innym pliku jestem pobierania JSON z sessionStorage:Javascript: próbuje uzyskać dostęp do elementów tablicy JSON daje mi poszczególne znaki
var json = JSON.parse(JSON.stringify(sessionStorage.getItem("json")));
if(json) {
sessionStorage.removeItem("json");
}
To daje mi tablicę obiektów JSON, przykład : [{'name':'Bob',...}]
. Jednak, gdy próbuję uzyskać dostęp do pierwszego elementu tablicy: json[0]
, otrzymuję '['
i kiedy próbuję json[0].name
otrzymam undefined
. Długość json
jest zgłaszana jako 159, więc zlicza każdy indywidualny znak jako element.
EDIT: Po aktualizacji do:
var json = JSON.parse(sessionStorage.getItem("json"));
if(json) {
sessionStorage.removeItem("json");
}
dostaję długości 1 (która jest poprawna), ale błąd przy dostępie json[0].name
:
Uncaught TypeError: Cannot read property '0' of null
at HTMLDocument.<anonymous> (studying.js:10)
at j (jquery.min.js:2)
at k (jquery.min.js:2)
masz łańcuch. Użyj 'JSON.parse() 'poprawnie – Weedoze
dlaczego jesteś stringifying to tylko do parsowania go ponownie? – Cruiser
Już zapisujesz ciąg json w pamięci lokalnej, dlaczego wywołujesz stringify dwa razy? – abhishekkannojia