【发布时间】:2011-07-01 12:52:28
【问题描述】:
我正在尝试创建一个 iOS 应用程序,该应用程序在加载时最初会通过 HTTP 连接回 PHP Web 服务,该服务将从 MySQL 数据库中以 JSON 格式输出数据。然后我希望它将这些数据导入到 iOS 应用程序中的本地 SQLite 数据库中。我已经下载了 Objective-C 的 JSON 框架。
我的问题有两个。
1) 从 PHP 输出 JSON 以便我可以在同一个 JSON 文件中发送多个数据库表的最佳方式是什么?我有 4 个要发送的数据表(用户、建筑物、房间、设备)。 以下是我当前输出 JSON 数据的方式:
// Users
$query = "SELECT * from user";
$result = mysql_query($query,$conn) or die('Errant query: '.$query);
$users = array();
if(mysql_num_rows($result)) {
while($user = mysql_fetch_assoc($result)) {
$users[] = array('user'=>$user);
}
}
// Buildings
$query = "SELECT * from building";
$result = mysql_query($query,$conn) or die('Errant query: '.$query);
$buildings = array();
if(mysql_num_rows($result)) {
while($building = mysql_fetch_assoc($result)) {
$buildings[] = array('building'=>$building);
}
}
// Rooms
$query = "SELECT * from room";
$result = mysql_query($query,$conn) or die('Errant query: '.$query);
$rooms = array();
if(mysql_num_rows($result)) {
while($room = mysql_fetch_assoc($result)) {
$rooms[] = array('room'=>$room);
}
}
// Devices
$query = "SELECT * from device";
$result = mysql_query($query,$conn) or die('Errant query: '.$query);
$devices = array();
if(mysql_num_rows($result)) {
while($device = mysql_fetch_assoc($result)) {
$devices[] = array('device'=>$device);
}
}
header('Content-type: application/json');
echo json_encode(array('users'=>$users));
echo json_encode(array('buildings'=>$buildings));
echo json_encode(array('rooms'=>$rooms));
echo json_encode(array('devices'=>$devices));
我担心这种方法不是发送多个对象的正确方法。
2)在iOS应用中,如何自动取这个JSON数据插入到SQLite中对应的本地数据库表中?
感谢您的帮助。
【问题讨论】:
标签: php iphone objective-c json ios