2

我正在尝试编写一个使用 json 对象从服务器获取数据的 iOS (5) 应用程序。我从应用程序调用一个 php 脚本,该脚本从服务器获取数据,将其编码为 json,然后将其输出。执行此操作的 php 脚本中的行是:

$json_encoded =  json_encode($normal_array, JSON_FORCE_OBJECT)
echo $json_encoded;

但是当我这样做时:

NSURL *url = [NSURL URLWithString:@"192.168.1.100/testing/get.php?number=5"];
NSData *data = [NSData dataWithContentsOfURL:url];

data 变量大小为 0 字节,不包含任何数据。

谁能告诉我为什么 dataWithContentsOfURL 得到的东西是空的?回声还不够吗?我需要发送回复或类似的东西吗?如果是这样,我将如何从 php 脚本发送响应?如果我在浏览器中调用完全相同的脚本,它会输出:

{
    "0": {
        "0":"asdfgh",
        "1":"2012-06-11 16:21:15"
    },
    "1": {
        "0":"jumps over",
        "1":"2012-06-11 16:20:52"
    },
    "2": {
        "0":"the quick brown fox",
        "1":"2012-06-11 16:20:40"
    },
    "3": {
        "0":"the quick brown fox",
        "1":"2012-06-11 16:20:40"
    },
    "4": {
        "0":"the quick brown fox",
        "1":"2012-06-11 16:20:21"
    }
}

据我所知,这是一个有效的 JSON 对象。

4

3 回答 3

1

确保发送带有内容类型的标头。

header('Content-type: application/json');
print json_encode($array);
exit();
于 2012-06-12T12:48:14.637 回答
0

我的猜测是您的设备没有看到该本地 IP 地址?无论是那个还是它的 json 解析都要严格得多。您是否使用 php 脚本输出了 json 标头?

于 2012-06-12T12:50:00.140 回答
0

url输出字符串,所以使用以下

NSURL *url = [NSURL URLWithString:@"192.168.1.100/testing/get.php?number=5"];
NSString *jsonVal = [NSString stringWithContentsOfURL:url];
NSLog(jsonVal);
于 2012-06-12T12:52:16.757 回答