HTML5 localStorage (данные XML / JSON) - PullRequest
6 голосов
/ 27 ноября 2011

У меня есть XML-файл, как показано ниже:

<itemnumbers>
<item>
<itemno>123</itemno>
<desc>Desc about 123</desc>
</item>

<item>
<itemno>456</itemno>
<desc/>
</item>

...

</itemnumbers>

Я хотел бы использовать HTML5 localStorage для хранения данных (и извлечения для более быстрого доступа), поскольку данные XML не изменяются регулярно.

Я планирую сначала преобразовать его в JSON, а затем сохранить в localStorage. Должен ли я сделать это в коде или получить данные заранее в файле .JSON вместо файла .xml?

Как мне разобрать данные позже? В настоящее время я использую код JQuery для анализа ... что-то вроде:

$(this).find("itemno").each(function()
{
$(this).text();
$(this).next().text()
}

Будет ли вышеуказанный код работать после преобразования JSON?

Я хотел бы получить предложения о том, как лучше к этому подойти.

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

Я согласен с некоторыми комментариями, что вы можете просто продолжать использовать XML. Если вы хотите преобразовать в JSON, вы должны использовать цикл For In в javascript, чтобы проходить через него так же, как если бы вы использовали объект в javascript.

Ваши данные в формате JSON:

{"itemnumbers": 
    { "item": {"itemno": 123, "desc": "Desc about 123"} }
    { "item": {"itemno": 456, "desc": "Desc about 456"} }
}

Цикл ваших данных, где данные - это объект JSON выше:

for (item in data.itemnumbers) {
    //do something with item data
    console.log(data.itemnumbers[item].itemno);
    console.log(data.itemnumbers[item].desc);
}

Чтобы сохранить объект в localStorage, вы должны преобразовать его в строковый формат, который вы можете снова извлечь как объект. Вы можете использовать JSON.stringify (), чтобы сделать объект строкой, и JSON.parse (), чтобы вытащить его обратно:

//saving object to localStorage
localStorage['my_data'] = JSON.stringify(data);

//fetching object from localStorage
data = JSON.parse(localStorage['my_data']);

Остерегайтесь, поскольку эти методы не поддерживаются в IE7 и ниже, поэтому вам необходимо найти совместимую с ними библиотеку синтаксического анализа. Вот сообщение, которое может помочь с совместимостью:

Безопасное превращение строки JSON в объект

0 голосов
/ 27 ноября 2011

Я бы предложил вам написать скрипт, который преобразует XML-данные в JSON, а затем отправляет их на клиентскую сторону и сохраняет.

Позже, при необходимости, проанализируйте JSON, что очень легко сделать.Точно так же как: -

var jsonObject = JSON.parse(yourObjectInJSON);

Цикл по нему: -

for (item in jsonObject.itemnumbers) {
//do something with item data
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...