Важным моментом является то, что данные JSON являются просто объектом JavaScript, поэтому вы можете использовать любую библиотеку, которая позволяет вам манипулировать объектами.
Я бы порекомендовал underscore.js в качестве общего пояса для решения подобных проблем.
Таким образом, мы можем легко манипулировать данными
var jsonData = $.getJSON(url);
var filtered = _.filter(jsonData, function(val, key) {
if (val > 10) return true;
});
var sorted = _.sortBy(jsonData, function(val, key) {
return order(val);
});
Фильтрация и упорядочение зависит от вашей модели данных.Я рекомендую вам использовать какую-нибудь оболочку для представления вашей модели данных на клиенте.
var MyModel = function(json) {
var data = json;
this.filterBySize = function(size) {
data = _.filter(data, function(val) {
return val > size
});
};
...
}
var model = new MyModel(json);
model.filterBySize(10);
Альтернативой является использование большой библиотеки, такой как backbone.js и создание Backbone.Model
для вашей записи и Backbone.Collection
для всего вашего набора данных.Тогда вы можете просто позвонить .sort
, .sortBy
, .filter
в свою Коллекцию.
Если вы собираетесь вывести магистраль, тогда вы переходите к MVC на стороне клиента, и вы можете использовать весь набор инструментов для подключения ваших данных.и ваш пользовательский интерфейс вместе приятно.Просто перезапишите Backbone.sync
с вашим собственным сервером связи.