首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Extjs store读取器完全限定的json属性名称

Extjs store读取器完全限定的json属性名称
EN

Stack Overflow用户
提问于 2010-12-05 21:25:59
回答 1查看 1.1K关注 0票数 1

使用Extjs和服务器端返回以下3+:

代码语言:javascript
复制
{"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"}}}}

读卡器的设置如下:

代码语言:javascript
复制
    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'}
            ]
        );

存储为:

代码语言:javascript
复制
    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对象中具有完全限定的属性名称(即。"com.klistret.cmdb.ci.pojo.name“而不仅仅是"name")。

有没有人用过这个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-08 11:55:32

我们在评论中解决了这个问题(好吧,主要是Matthew做的):

ScriptTagProxy需要服务器将JSON数据包装在函数调用中,以便您的本地代码可以访问它。

而不是服务器发出类似如下的内容:

代码语言:javascript
复制
{here:'is data}

它需要回归

代码语言:javascript
复制
somefunc("{here:'is data'}");

这样,您的somefunc()客户端实现就会被调用,并可以处理返回的数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4359026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档