2010-12-05 17 views
1

には、以下のJSONを返送されます。ExtJSの店のリーダーの完全修飾JSONのプロパティ名

{"com.klistret.cmdb.ci.pojo.QueryResponse": {"com.klistret.cmdb.ci.pojo.successful":true,"com.klistret.cmdb.ci.pojo.count":1,"com.klistret.cmdb.ci.pojo.elements":{"com.klistret.cmdb.ci.pojo.id":123,"com.klistret.cmdb.ci.pojo.name":"Mars","com.klistret.cmdb.ci.pojo.fromTimeStamp":"2010-07-08T16:38:00.478+02:00","com.klistret.cmdb.ci.pojo.createTimeStamp":"2010-07-08T16:38:00.478+02:00","com.klistret.cmdb.ci.pojo.updateTimeStamp":"2010-10-25T15:02:09.446+02:00","com.klistret.cmdb.ci.pojo.type":{"com.klistret.cmdb.ci.pojo.id":1,"com.klistret.cmdb.ci.pojo.name":"{http:\/\/www.klistret.com\/cmdb\/ci\/element\/logical\/collection}Environment","com.klistret.cmdb.ci.pojo.fromTimeStamp":"2009-08-05T11:20:12.471+02:00","com.klistret.cmdb.ci.pojo.createTimeStamp":"2009-08-05T11:20:12.471+02:00","com.klistret.cmdb.ci.pojo.updateTimeStamp":"2009-08-05T11:20:12.471+02:00"},"com.klistret.cmdb.ci.pojo.configuration":{"@www.w3.org.2001.XMLSchema-instance.type":"com.klistret.cmdb.ci.element.logical.collection:Environment","@Watermark":"past","com.klistret.cmdb.ci.commons.Name":"Mars"}}}}

次のように読者がアップセットアップです:


    var reader = new CMDB.JsonReader(
      { 
      totalProperty  : 'com.klistret.cmdb.ci.pojo.count', 
       successProperty  : 'com.klistret.cmdb.ci.pojo.successful', 
       idProperty   : 'com.klistret.cmdb.ci.pojo.id', 
       root    : 'com.klistret.cmdb.ci.pojo.elements' 
      }, 
      [ 
      {name: 'Id', mapping: 'com.klistret.cmdb.ci.pojo.id'}, 
       {name: 'Name', mapping: 'com.klistret.cmdb.ci.pojo.name'} 
      ] 
     ); 

店など:


    var ds = new Ext.data.Store({ 
      proxy  : new Ext.data.ScriptTagProxy({ 
       url : 'http://sadbmatrix2:55167/CMDB/resteasy/element' 
      }), 

      reader  : reader 
     }); 

http://erichauser.net/2007/11/07/more-wcf-json-and-extjs/により説明したように、読者は、除去するExt.data.JsonReaderを拡張サーバーから返されたJSONの "com.klistret.cmdb.ci.pojo.QueryResponse"開始ノード。

拡張リーダーは決して呼び出されません。この問題は、返されたJSONオブジェクトの完全修飾プロパティ名(つまり、単に "name"ではなく "com.klistret.cmdb.ci.pojo.name")が原因であると仮定します。

誰でも使用していますか?

+0

ScriptTagProxyを正しく使用していますか?意味 - サーバーがJSONをコールバック関数に適切にラップしていますか? – timdev

+0

"サーバー"がコールバック関数をラップしているということをどういう意味か分かりませんか?以前はScriptTagProxyを使用していませんでしたが、Senchaのサンプル(http://www.sencha.com/forum/topics-browse-remote.php)はJSONデータを送信するだけです。主な問題は、doRequest呼び出しの後に、コールバック関数(ウィンドウオブジェクトと凝灰体に動的にインターレースされる)または他の場所のいずれかに障害があることです。 –

+0

VARのtProxy =新しいExt.data.ScriptTagProxy({ URL: 'のhttp:// sadbmatrix2:55167/CMDB/RESTEasyの/要素' paramsは:{ \t開始:0、 \t \t限界:20、 \t \t式:式[0] } }); VARオプション= { \tのparams:{ \t開始:0、 \t限界:20、 \t式:式[0] }}。 tProxy.request(Ext.data.Api.actions ['read']、null、options.params、null、null、null、tProxy、options); タイムアウト後にhandleFailureを終了します。Extjsトラップ(trans.callbackがnullです) –

答えて

2

我々はコメントで(まあ、ほとんどはマシューがした)、それを働いた:

ScriptTagProxyは、ローカルのコードが、それへのアクセスを得ることができるように、関数呼び出しでJSONデータをラップするためにサーバを必要とします。

代わりのようなもの発光サーバーの:それは

somefunc("{here:'is data'}"); 

その方法を返す必要

{here:'is data} 

を、somefunc()のクライアント側の実装におけるが呼び出され、返されたデータを処理することができます。

関連する問題