как определить, является ли строка строковым объектом JSON

Для всех, кому интересно, я закончил создание скрипта "localstorage с истечением срока действия" здесь, http://plugins.jquery.com/ project / localcache

Что я делаю: создаю расширение для хранилища, чтобы пользователь мог делать это:

localStorage.setThing(key, value)

и пользователь мог делать следующее:

localStorage.setThing("key1", 1)
localStorage.setThing("key2", "this is a string")
localStorage.setThing("key3", { prop1: "this is a json obj" })

В моем методе setThing я проверяю наличие typeof для значения, и если typeof value == "object" , я сохраняю его как localStorage.setItem (key, JSON.stringify (value))

В методе getThing , Я знаю, что значение, которое попадает в localStorage, всегда будет строкой. Итак, как я могу это сделать?

var val = localStorage.getItem("key3")
if (val is a previously JSON.stringify'd object) // <-- ??
    return JSON.parse(val)

Нужно ли мне проверять регулярное выражение на val, и если да, есть ли у кого-нибудь под рукой шаблон, который сообщает мне, действительно ли строка является объектом JSON.stringify'd?

Спасибо!

5
задан Rob W 27 December 2011 в 14:55
поделиться