2016-10-13 13 views
1

現在、シェフサーバー上のエンドポイントから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" 
} 

しかし、私は、エンドポイント、具体的には、団体/(団体名)/料理エンドポイントから受け付けております応答は、次のようにでてくる:通常、JSONの応答は次のようになります

かつての応答に
{"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

グリッドには何を表示したいですか?それは連結された配列であり、各キーの下にある 'versions'はすべてですか? –

+0

グリッド上に料理名を表示したいのですが、そのグリッドの行をクリックすると、JSONに対応するそのCookbookのプロパティをさらに表示できるようになります。 –

答えて

0

私はExtJSのの何も知らないありがとう、しかし、その後、再び、これはどちらか本当にシェフの質問ではありません。基本的にシェフのREST APIは、単純なクライアントによる直接使用のために構築されていません。特に、あなたがそこに示したリストエンドポイントは、各料理本の名前(とURLが、それはかなり役に立たない)だけを与えます。そこから、それぞれのバージョンのリストを取得するためにN個以上のクエリを実行し、各バージョンの詳細を取得するためにおそらくN * Mを実行する必要があります。大量のデータをUIフレームワークに渡す前に、通常これをすべて実行します。

+0

それは私が考えていたものです。私の見解を表示する前に、いくつかの前処理を行う必要があります。私はもっ​​と良いものを期待していましたが、それがそうであれば、それがそうであるように、それではそうです。ありがとうございました –