localStorageを介して複数のJSオブジェクトからなる配列を保存しようとしています。LocalStorage JSオブジェクトを保存してロードする
私はFail when pushing an array of js objects to localStorage and then retrieving it and parsingと同じ問題があると思いますが、解決策はありません。
var featureArray=[];
map.on('click', function(evt) {
if (feature) {
featureArray.push(feature.values_);
}
});
function saveFeatures() {
localStorage.setItem('features', featureArray);
}
saveFeatures();
私はlocalStorage.getItem('features')
を介して出力をそれらをロードしようとするようなものです:
[object Object],[object Object]
しかし、私は実際にこのような構造の背後に値を保存することにしたいです。
私はlocalStorage.setItem('features', JSON.stringify(featureArray))
を試してみましたが、それは
TypeError: Converting circular structure to JSON
は私が間違って何をやっているエラーがスローされますか?
にconsole.log(featureArray)の出力:
(2) [{…}, {…}]
0:
geometry:ol.geom.MultiPolygon {pendingRemovals_: {…}, dispatching_: {…}, listeners_: {…}, revision_: 2, ol_uid: 39, …}
krs:"Niedersachsen"
sumarea_1_2014:20298
sumarea_1_2015:16045
sumarea_1_2016:19008
sumarea_3_2014:3888
sumarea_3_2015:27971
sumarea_3_2016:15520
sumarea_5_2014:11888
sumarea_5_2015:14671
sumarea_5_2016:31307
__proto__:Object
1:
geometry:ol.geom.MultiPolygon {pendingRemovals_: {…}, dispatching_: {…}, listeners_: {…}, revision_: 2, ol_uid: 41, …}
krs:"Nordrhein-Westfalen"
sumarea_1_2014:23100
sumarea_1_2015:2399
sumarea_1_2016:21916
sumarea_3_2014:11375
sumarea_3_2015:31563
sumarea_3_2016:20300
sumarea_5_2014:859
sumarea_5_2015:20633
sumarea_5_2016:31101
__proto__:Object
length:2
__proto__:Array(0)
UPDATE:https://jsfiddle.net/ytc26fju/3/。点の上にカーソルを置くと配列が更新されます。 [保存]をクリックし、次に[ロード]ボタンをクリックします。
JSON.parse(localStorage.getItem( 'features'))を試したことがありますか? さらにご覧ください: https://stackoverflow.com/questions/11616630/json-stringify-avoid-typeerror-converting-circular-structure-to-json – user1338871
JSON parse/stringify ...localStorageには文字列しか格納できません –
タイプフィーチャ配列は何ですか? – Steven