gpt4 book ai didi

ios - 如何返回多个 JSON 结果

转载 作者:行者123 更新时间:2023-11-28 19:03:59 24 4
gpt4 key购买 nike

我构建了一个连接到我的 Sql 数据库并通过 JSON 返回请求的数据量的 Web 服务。

如果它返回一条记录,一切都很好,但是如果它返回多条记录,整个过程就会在 for 循环中死掉。任何人都可以指出正确的方向来弄清楚它为什么这样做。

NSString *urlString;
urlString = @"http://url.php";

NSData *jsonSource = [NSData dataWithContentsOfURL:
[NSURL URLWithString:urlString]];

id jsonObjects = [NSJSONSerialization JSONObjectWithData:
jsonSource options:NSJSONReadingMutableContainers error:nil];
for (NSDictionary *dataDict in jsonObjects) {
NSString *idData = [dataDict objectForKey:@"ID"];
dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
idData, @"ID",
Nil];
[myObject addObject:dictionary];

我正在尝试将这些数据放入 TableView 中。

JSON 是:

[
{
"ID": "8",
"APP_ID": "xx",
"NAME": "xxx",
"PRICING": "paid",
"PRODUCT_ID": "xxx",
"TITLE‌​": "xxx",
"INFO": "xxx",
"DATE": "2014-01-01 00:00:00",
"AVAILABILITY": "published",
"COVER": "xxxx",
"URL": "xxxx",
"ITUNES_SUMMARY‌​": "In this issue we interview Steve Jobs on all things Apple.",
"ITUNES_COVERART_URL": "xxx",
"ITUNES_PUBLISHED": "2012-11-01T00:00:00-07:0‌​0",
"ITUNES_UPDATED": "2012-11-01T00:00:00-07:00"
}
]

这是生成 JSON 输出的 PHP:

if($result = $con->query("SELECT * FROM ISSUES WHERE PRICING = 'free'")) { 
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
array_push($json, $tempArray);
echo json_encode($json);
}
}

最佳答案

您确定响应是有效的 JSON 吗?将JSON数据转成字符串打印到控制台...

NSLog(@"%@", [[NSString alloc] initWithData:jsonSource encoding:NSUTF8StringEncoding]);

... 然后在像 JSONLint 这样的 JSON 验证器中检查它或 JSON Editor Online .

您还可以在 NSJSONSerialization 方法中传递一个指向 NSError 对象的指针。也将其记录到控制台。

NSError *error;
id jsonObjects = [NSJSONSerialization JSONObjectWithData:jsonSource
options:NSJSONReadingMutableContainers
error:&error];
NSLog(@"error %@", error);

如果没有任何错误消息,那么您应该检查的最后一件事是生成的 jsonObjects 变量是您期望的类型(我假设您期望的是 NSArray )。


看到PHP代码后,问题应该解决了:

if($result = $con->query("SELECT * FROM ISSUES WHERE PRICING = 'free'")) { 
$tempArray = array();
while($row = $result->fetch_object()) {
array_push($row, $tempArray);
}
echo json_encode($tempArray);
}

关于ios - 如何返回多个 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com