2014-05-23 18 views
6

i Không biết vấn đề tôi đã nhận trên lỗi cú pháp trong JSON.parse Tôi đang sử dụng như dưới đây đangLỗi Cú pháp JSON.parse nhân vật bất ngờ tại dòng 1 cột 1 của dữ liệu json

Storage.prototype.setObject = function(key, value) { 
    this.setItem(key, JSON.stringify(value)); 
} 

Storage.prototype.getObject = function(key) { 
    var value = this.getItem(key); 
    return value && JSON.parse(value); 
} 

function main() { 
    var data = { 
     "a":"something1", 
     "b":"something2" 
    }; 
    sessionStorage.setObject('data',data); 
    var newData = sessionStorage.getObject('data'); 
    console.log(newData); 
} 

khi là những gì gọi getObject ('data') tôi nhận được lỗi trong "firefox" trong khi "không có lỗi" trong chrome pls giúp tôi tìm ra vấn đề tôi chạy trên mã mẫu riêng và nó hoạt động tốt cho tôi nhưng trong dự án của tôi, nơi im làm điều gì đó cùng nó gây ra lỗi.

+0

Tôi đặt cược 'this.getItem (key) 'không trở về những gì bạn mong đợi, chỉ cần gỡ lỗi nó. – VitaliyG

+0

'i chạy trên mẫu mã riêng biệt và nó hoạt động tốt cho tôi nhưng trong dự án của tôi, nơi tôi làm điều gì đó tương tự nó gây ra lỗi.' Cố gắng cô lập vấn đề của bạn trong dự án của bạn. Bởi vì có vẻ như đó là một dữ liệu cụ thể mà bạn đang xử lý trong dự án của bạn đang gây ra sự cố. – chestozo

+0

Gỡ lỗi: 'console.log (giá trị) là gì?'? Đặt nó trước khi bạn cố gắng phân tích cú pháp và quay trở lại. – epascarello

Trả lời

1

Tôi không gặp bất kỳ lỗi nào trong Firefox hoặc Chrome. Tuy nhiên, bạn có thể bắt ngoại lệ này để gỡ lỗi bằng cách thêm một khối try/catch đến getObject phương pháp

Storage.prototype.getObject = function(key) { 
    var value = this.getItem(key); 
    if (value) { 
     try { 
      value = JSON.parse(value); 
     } catch (err) { 
      console.error("Error parsing stored data: " + err); 
     } 
    } 
} 
Các vấn đề liên quan