在 Sencha Touch 中解析复杂的 JSON

Posted

技术标签:

【中文标题】在 Sencha Touch 中解析复杂的 JSON【英文标题】:Parse complex JSON in Sencha Touch 【发布时间】:2011-03-16 15:29:40 【问题描述】:

我在 Sencha Touch 论坛上询问过,但没有得到很好的回应(嗯,事实上没有)。我想知道是否有人可以提供帮助。我想根据从 php 脚本收到的 JSON 响应创建项目列表。下面是从 PHP 收到的 JSON 示例:


   "friends":[
      
         "friend":
            "id":"4",
            "forename":"Chris",
            "surname":"Major",
            "verboseName":"Chris Major",
            "phoneNumber":"07931655247",
            "longitude":"-0.410909",
            "latitude":"52.999245",
            "email":"major@lincsmps.co.uk",
            "lastRefresh":null,
            "joinDate":"1294839423"
         ,
         "networks":null,
         "approved":"1"
      ,
      
         "friend":
            "id":"2",
            "forename":"Marta",
            "surname":"Urbanowicz",
            "verboseName":"Marta Urbanowicz",
            "phoneNumber":"07716021468",
            "longitude":"-0.0338518",
            "latitude":"52.9773876",
            "email":"urb.marta@googlemail.com",
            "lastRefresh":null,
            "joinDate":"1294836801"
         ,
         "networks":null,
         "approved":"1"
      
   ]

我想知道如何将其解析为 DataStore,然后在 Sencha Touch 中输出一个分组列表。虽然有对 ListView 使用标准 JSON 响应的示例,但似乎没有像这样的嵌套示例...

感谢您的帮助。

【问题讨论】:

【参考方案1】:

本,

您可能想要做的是使用您想要的字段(可能是 id、姓氏、电子邮件、网络、已批准)声明您的 Friends 商店

然后当使用 Ajax 远程调用进行远程调用时,它只会传回原始数据。

此时您将拥有“朋友”对象。然后,您可以遍历每个“朋友”,而不是添加“朋友”,而是创建新对象:

var 朋友 = id:'2', surname:'whatever', email:'whatever@blah.com'

制作这些新朋友结构的数组,并将它们传递到存储中。这将展平或简化您复杂的 json 结构。

希望对您有所帮助,如果您需要,我可以提供更多详细信息。

【讨论】:

@BenM 与 jquery?你是怎么做到的?

以上是关于在 Sencha Touch 中解析复杂的 JSON的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sencha touch 2.1 中创建复杂的数据项?

Sencha Touch 2- 解析存储包含数组的 JSON 文件

Sencha Touch 和 WordPress BuddyPress API 之间的 JSON 解析问题

Sencha Touch JSON 格式?

Sencha Touch filter dataview 存储和刷新列表

[Sencha ExtJS & Touch] 在Sencha(Extjs/Touch)应用程序中使用plugins(插件)和mixins(混入)