将自定义 JSON 解析为 ExtJS 4.1 TreeStore
Posted
技术标签:
【中文标题】将自定义 JSON 解析为 ExtJS 4.1 TreeStore【英文标题】:Parsing custom JSON into an ExtJS 4.1 TreeStore 【发布时间】:2012-07-06 11:02:22 【问题描述】:我有一个响应 JSON 字符串的 HTTP 服务器。它们看起来像这样:
... “价值”: “孩子们”:[ "路径":"KEY_518693", "名称":"KEY_518693", "children_count_overall":0, "children_page":1, “children_pages”:1, “children_pagesize”:10 ... ], "children_count_overall":1, "children_page":1, “children_pages”:1, "children_pagesize":1, “名称”:空, “路径”:空, ...每个请求都有父节点("value"
),我为此请求了子节点和这个子节点("children"
),还有一些分页信息。
如果没有指定父节点,则返回根节点作为虚拟根节点的子节点。
我将代理的"root"
属性设置为"value"
,因此代理知道在哪里搜索节点,但是我的TreeStore 的tree
成员在load()
之后有一个奇怪的结构:
tree:
childNodes: [
childNodes: [], <-- no child?
data:
children: [
...the raw data of the "children" node (like in the example above)...
],
... the data of the "value" node and some data from the implicit node model...
]
"value"
中的对象不知何故被转换为节点并插入到树中,但 "children"
数组中的对象不会被转换并最终成为此 "value"
node 的数据。
【问题讨论】:
【参考方案1】:TreeStore 旨在使用 JSON 对象:
"success": true,
"Root": [
...,...,... //Children
]
由于您没有指定根节点内的数组,所有这些信息都作为原始数据传递。此外,如果您希望能够访问您的数据而不必通过“原始”信息,最好指定一个模型,您可以在其中指定每个节点数据内的字段。
所以基本上我会说最好重做您的服务器响应或自己检查原始数据。
【讨论】:
以上是关于将自定义 JSON 解析为 ExtJS 4.1 TreeStore的主要内容,如果未能解决你的问题,请参考以下文章
在 ExtJS 中,如何将自定义 CSS 类添加到数据网格行?
ExtJS 4.1 - JSON 中关联的嵌套 hasOne
ExtJS 4.1 - 检索嵌套 JSON 的 hasOne 信息