簡體   English   中英

如何從json localStorage字符串中提取數字值?

[英]How can I extract a number value from a json localStorage string?

我是JSON新手,請多多包涵!

我將3個數值存儲在localStorage中,然后將它們加起來。

出現localstorage json字符串(在本地存儲中隨機輸入數字)

    {"bookmarks3":"[{\"answer\":\"989\"}]","bookmarks4":"[{\"answer\":\"8777\"}]","bookmarks5":"[{\"answer\":\"8777\"}]"}

這是我的代碼:

    function bookmarkMath() {
    // Fetch input
    // Get bookmarks from LocalStorage
    var bm1 = JSON.stringify(localStorage);
    var bm2 = 10;
    var bm3 = 30;
    var bookmarksTotal = JSON.parse(bm1) + bm2 + bm3;
    // Get output id 
    var bookmarkmathResults = document.querySelector('.input-results-math');

    // Build outputs
    bookmarkmathResults.innerHTML = '';


    var name = bookmarksTotal;  

    bookmarkmathResults.innerHTML = name;
    bookmarkmathResults.style.display = 'inline-block';

    console.log(`Total is "${booksmarksTotal}"`);

    }

本地存儲輸出

    bookmarks3=[[{"answer":"35"}]]
    bookmarks4=[[{"answer":"355"}]]
    bookmarks5=[[{"answer":"2344"}]]

任何幫助將不勝感激!

沒有理由對JSON進行字符串化,因為無論如何稍后都將再次對其進行解析。

您可以通過執行localStorage.getItem或localStorage.param輕松獲取值

因此,在上面的示例中,您將執行以下操作:

var bm1 = localStorage.getItem('bookmarks1');

或者您可以通過以下方式訪問:

var bm1 = localStorage.bookmarks1

您當前的設置只是json.parse將返回JSON而不是與您的密鑰關聯的值的數據。

要僅獲取數字,只需執行.answer即可。 所以:

var bm1. = localStorage.bookmarks1[0].answer

要么

var bm1 = localStorage.getItem('bookmarks1')[0].answer

請注意,您要存儲一個數組,因此需要獲取索引0,看起來每個條目不超過一個。

如果要從bm1獲取每個數字,只需像這樣遍歷對象:

for (var bookmark in bm1) {
    console.log(key[0].answer);
}

這會將以下內容輸出到控制台;

989
8777
8777

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM