2016-10-13 4 views
1

В настоящее время я пытаюсь прочитать данные с конечной точки на моем сервере шеф-повара, используя считыватель прокси-сервера JSON в extJS, чтобы отобразить его на сетке. Обычно, ответ JSON выглядит примерно так:Чтение данных JSON с несовместимым индексом данных extJS

{ 
    "userId": 1, 
    "id": 1, 
    "title": "sunt aut facere repellat provident occaecati excepturi optioreprehenderit", 
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto" 
}, 
{ 
    "userId": 1, 
    "id": 2, 
    "title": "qui est esse", 
    "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla" 
} 

Однако ответ я получаю от конечной точки, в частности,/(имя-организации) организации/поваренные конечной точки, приходит в следующим образом:

{"my_cookbook_1":{"url":"company.com","versions":[{"version":"0.1.0","url":"company.com"}]}, 
"my_cookbook_2":{"url":"company.com","versions":[{"version":"0.2.0","url":"company.com"}]} 

с бывшего ответа, я могу указать dataIndex атрибут на сетке как «имя» и получить соответствующую информацию.

var optionalCookbooksGrid = Ext.create('Ext.grid.Panel', { 
    store: optionalCookbooksStore, 
    width: '100%', 
    height: 200, 
    title: 'Optional Cookbooks', 
    columns: [ 
    { 
     text: 'Role', 
     width: 100, 
     sortable: false, 
     hideable: false, 
     dataIndex: 'userID' 
    } 
    ] 
}); 

Потому что мой ответ от шеф-сервера не имеет последовательного dataIndex, как бы отобразить содержимое в моей сетке?

Спасибо

+0

Что вы хотите отобразить в своей сетке? Является ли это конкатенированным массивом всех «версий» под каждым ключом? –

+0

Я хотел бы просто отобразить имя поваренной книги в сетке, но, возможно, иметь его, чтобы, если я нажму на строку на этой сетке, я могу отобразить больше свойств этой кулинарной книги, соответствующей ее JSON. –

ответ

0

Я ничего не знаю о ExtJS, так что это на самом деле не прямой ответ, но опять же это на самом деле не Chef вопрос либо. В основном, REST API шеф-повара не построен для прямого потребления простыми клиентами. Примечательно, что конечная точка списка, которую вы показали там, дает только имя (и URL-адрес, но это бесполезно) для каждой кулинарной книги. Оттуда вам нужно сделать еще N запросов, чтобы получить список версий для каждого, а затем, возможно, N * M, чтобы получить детали для каждой версии. Обычно вы делаете все это, прежде чем подавать массивный массив данных в структуру пользовательского интерфейса.

+0

Вот что я думал. Некоторая предварительная обработка должна быть выполнена, прежде чем отображать ее в моем представлении. Я надеялся на что-то лучшее, но если это так, как кажется, то и так. спасибо –

Смежные вопросы