错误域= NSCocoaErrorDomain代码= 3840“字符0周围的值无效” UserInfo = {NSDebugDescription =字符0周围的值无效

时间:2017-09-12 11:27:42

标签: php ios objective-c json jsonparser

enter image description here这里是我的RetriveData.Php:

<?php
ini_set("display_errors","on");
include("connection.php");

$query= "SELECT * FROM Person" ; //replace  with your table name
$result = mysqli_query($con,$query)  or  die("Error".mysqli_error($con));
//create an array
$json = array();
if(mysqli_num_rows($result))
{
  while($row=mysqli_fetch_row($result))
   {
      $json[]=$row;
   }
}
  echo json_encode($json);
 ?>

这里是我的.m文件代码:

NSError *error = nil;
NSString *url_string = [NSString stringWithFormat: @"http://127.0.0.1/RetriveData.php"];
NSData *data = [url_string dataUsingEncoding:NSUTF8StringEncoding];
NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
NSLog(@"%@",error);
NSLog(@"json: %@", json);

问题是这个json数组打印为Null。

1 个答案:

答案 0 :(得分:0)

首先,删除PHP代码中的“成功连接”文本。到目前为止,结果不是json格式。尝试改进它。

第二,在iOS端,您直接使用url字符串作为JSON。正确的方法是从URL获取数据,然后将其转换为JSON。尝试:

NSError *error = nil;
NSString *url_string = @"http://127.0.0.1/RetriveData.php";
NSURL *url = [NSURL URLWithString:url_string];
if (url != nil) {
    NSData *data = [NSData dataWithContentsOfURL:url];
    NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
    NSLog(@"%@",error);
    NSLog(@"json: %@", json);
}