1

我正在构建一个 Sencha touch 2 应用程序。

我有一个从本地 php 文件获取 json 数据的商店。

当我在谷歌浏览器(本地主机)上运行它时,这工作正常。列表会填充正确的数据。但是,当我将应用程序部署到 android 模拟器时,列表不会被填充,并且 LagCat 显示以下消息

0[WARN][Ext.data.reader.Reader#process] 无法解析服务器返回的 JSON:错误:您正在尝试解码无效的 JSON 字符串:<?php //Contents of the php file ?>

我的店铺:

Ext.define('app.store.Info', {
    extend: 'Ext.data.Store',
    requires: [
    ],
    config: {
        model: 'app.model.info',
        autoLoad: true,
        proxy: {
            type: 'ajax',
            url: 'getinfo.php',
            reader: {
                type: 'json'
            }
        }
    }
});

我的 php 文件使用 json_encode 将数组转换为 json。

我知道 php 文件是正确的,因为它在我在 Chrome 中测试时有效。我想知道我是否必须做一些特别的事情才能在 Android 应用程序中运行 php。

4

4 回答 4

0

我有两个建议

  1. 创建一个 Web 服务以从 Android 捕获 php 中的 JSON

  2. 创建一个 httpGet 对包含 json 文件的链接进行硬编码并通过 Android 对其进行解码

于 2012-09-30T06:55:22.000 回答
0

您不能将 PHP 文件放入 Android 并期望 JSON 输出。因为 PHP 解释器不能在 Android 内部工作。但是,您可以在您的计算机 (Apache) 中部署 PHP 文件并从 Android 引用它。

于 2012-09-30T07:25:49.940 回答
0

几天前我遇到了类似的问题。就我而言,问题在于我在代码中解析 JSON 响应字符串的方式。你是如何解析它的?你是否在 Log cat 中打印了结果字符串并检查了任何错误代码,或者在开头附加了一些无效字符串。?

于 2012-09-30T06:51:33.080 回答
0

您可以从网络上的任何地方获取 json。试试这个教程。

http://www.vogella.com/articles/AndroidJSON/article.html

于 2012-09-30T03:19:47.770 回答