Когда использовать список в JSON - PullRequest
4 голосов
/ 19 декабря 2010

Я написал JSON-компилятор и декомпилятор в Октябрь .Проведя кучу тестов против JSON других людей, я был удовлетворен тем, что это сработало, и пошел дальше.Я в основном сосредоточился на компиляторе, потому что это обычно сложная часть, пытаясь понять все переменные, которые люди могут выдать вам.С JSON, как рекламировалось, было довольно легко работать (хотя и не так легко, imho, как могло бы быть).Неважно.

Теперь у нас есть формат, который начинает набирать обороты, JSONification потока новостей , отображаемого River2 .Группа разработчиков Javascript работает над визуализацией этих данных, некоторые из которых теперь уже лучше, чем те, которые я использую, но ни один из них еще не достаточно функционален, чтобы я мог переключиться на.

Но есть проблема с JSON.

Каждая группа битов новостей организована в виде группы скалярных данных, таких как имя фида, URL, время последнего чтения фида и т. Д. Затем есть одна или несколько новостейПредметы.Если есть один элемент, я просто включаю структуру с именем item.Если их несколько, я включаю список структур.Список назван предметом.Я понял, что это соглашение для повторения элементов в JSON.

http://scripting.com/images/2010/12/17/jsonShot.gif

На снимке экрана выше есть два элемента "updatedFeed".У первого есть только один предмет, у второго - больше одного.

Это вызывает проблемы у людей на некоторых языках, потому что (по-видимому) им трудно иметь дело с объектом, заранее не зная его типа.Поэтому они говорят, что решение простое, всегда делайте это списком.Просто для них, но ...: -)

Но это не так просто с моей стороны.Потому что я использую универсальный сериализатор JSON, и у него не будет возможности узнать, что «элемент» всегда должен быть списком.Если только ...

Один из способов справиться с этим (что мне не нравится и не будет делать) - это сделать все списком.

Мне было просто интересно, какой другой JSON-производящие среды делают в подобных ситуациях.

1 Ответ

2 голосов
/ 08 января 2011

JSON - это формат сериализации.Обычно это работает лучше всего, если один и тот же (ожидаемый) объект каждый раз имеет одну и ту же схему, или если приемник построен так, чтобы быть гибким или игнорировать изменяющиеся части.

В этом случае мне кажется, чтопоток новостей всегда должен иметь один и тот же формат, поэтому звучит так, будто вам нужно настроить объект, который вы «компилируете», в JSON, чтобы он всегда имел одинаковую структуру, или использовать что-то вроде JSON Schema .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...