PHP / IOS:为网络服务编码json的最佳方法是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP / IOS:为网络服务编码json的最佳方法是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1979字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试创建一个Web服务,通??过php从mysql数据库提供json,以便在iPhone应用程序中显示.
我有一个标准的mysql / php设置.
数据位于包含字段和记录的表中.用sql查询创建记录集.记录集中的每条记录都是一行.
php
$sql = "SELECT userid,task,longtask FROM tasks WHERE userid = 1 LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
$tasks = array();
while($row = mysql_fetch_assoc($res)) {
$tasks[] = array('row'=>$row);
}
echo json_encode(array('tasks'=>$tasks));
//
Web服务生成以下输出:
{"tasks":[{"row":{"userid":"1","task":"send email to Bob","longtask":"include attached memo"}}]}
但是,我在阅读IOS时遇到了很多麻烦,这表明Web服务可能有更好的格式.
结构不同于我在教程中找到的用于将json读入IOS的其他资源(其中没有一个使用php / mysql).
任何人都可以告诉我一个更好的方法来构建json或者代码来读取iOS中的这个json以获取用户ID,任务和其他变量.
当我尝试这个时,我得到一个错误,它不能在index:0处的rad行
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData //1
options:kNilOptions
error:&error];
NSLog(@"about to print json: %@",json);
NSMutableArray *getElement = [json objectForKey:@"tasks"];
for (NSDictionary *dict in getElement) {
NSArray *array = [dict objectForKey:@"row"];
NSString *str = [array objectAtIndex:0];
}
在此先感谢您的任何建议.
解决方法:
方法1:编辑PHP代码
索引0不可用,因为您使用mysql_fetch_assoc从PHP获取关联数组.
默认情况下,使用mysql_fetch_array将返回一个包含从零开始的索引和关联键的数组.
$sql = "SELECT userid,task,longtask FROM tasks WHERE userid = 1 LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
$tasks = array();
while($row = mysql_fetch_array($res)) {
$tasks[] = array('row'=>$row);
}
echo json_encode(array('tasks'=>$tasks));
会输出
{"tasks":[{"row":{"0":"1","userid":"1","1":"send email to Bob","task":"send email to Bob","2":"include attached memo","longtask":"include attached memo"}}]}
现在,您可以使用键0或userid检索用户标识.
方法2:编辑iOS代码
编辑iOS代码.但要实现这一点,您必须知道行中的键.
NSString *str = [array objectForKey:@"userid"];`
内容总结
以上是互联网集市为您收集整理的PHP / IOS:为网络服务编码json的最佳方法是什么?全部内容,希望文章能够帮你解决PHP / IOS:为网络服务编码json的最佳方法是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。