基本上我在网页上有一个JSON数组,该数组在网页上工作正常,我可以将它作为字符串拉入objective-c,但我需要将它作为数组拉入objective-c。有人能告诉我最基本的方法吗?我见过一些教程可以做到这一点,但大多数都是JSON中的对象数组。
这是我的Objective-c代码,用于将信息作为字符串提取:
//create string to contain URL address for PHP file, the file name is index.php and the parameter: name is passed to the file
NSString *strURL = [NSString stringWithFormat:@"http://localhost:8888/page4.php?name=%@", _txtName.text];
//to execute PHP code
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString: strURL]];
//to recieve the returned value
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
NSLog(@"%@", strResult);
这是我的网页的PHP / JSON代码。
<?php
if (isset ($_GET["name"]))
$name = $_GET["name"];
else
$name = "NULL";
// Make a MySQL Connection
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
// Retrieve all the data from the "example" table
$result = mysql_query("SELECT * FROM user WHERE name = '$name'")
or die(mysql_error());
// store the record of the "example" table into $row
$row = mysql_fetch_array( $result );
$array = array(
"0" => $row['id'],
"1" => $row['name'],
);
$json_array = json_encode($array);
echo $json_array;
?>
答案 0 :(得分:2)
您可以使用以下代码将您的json响应转换为数组
NSError* error = nil;
NSArray *jsonArray = [NSJSONSerialization
JSONObjectWithData:responseData
options:kNilOptions
error:&error];
答案 1 :(得分:2)
从iOS 5开始,Apple提供了一个内置类来为您完成此操作。您可以设置选项以使返回的NSArray
和NSDictionary
容器可变,或者返回的叶对象可变。它在NSData
上运行,而不是NSString
。它使用简单:
NSError *error = nil;
NSArray *parsedArray = [NSJSONSerialization JSONObjectWithData:dataUrl
options:kNilOptions
error:&error];