用json touch解析数据

时间:2011-09-12 12:32:05

标签: php iphone json

我正在使用此示例:http://tempered.mobi/sites/default/files/JSonArticle.zip

但它在解析时显示空值。

我的PHP代码输出:

{"news":[{"title":"DurianFM Android Application"},{"title":"Hari Raya"},{"title":"C"}]}

iPhone代码:

(void)viewDidLoad {

  [super viewDidLoad];

  NSURL *url = [NSURL URLWithString:@"http://...........jsontest.php"];
  NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url];

  NSLog(jsonreturn); // Look at the console and you can see what the restults are

  NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding];
  NSError *error = nil;

  // In "real" code you should surround this with try and catch
  NSDictionary * dict = [[[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error] retain];
  if (dict)
  {
    rows = [dict objectForKey:@"news"];
  }

  NSLog(@"Array: %@",rows);


  [jsonreturn release];
}

当我检查 dict变量时,它总是显示空值。 这对我来说是个大问题。           NSData未转换为NSDictionary           NSDictionary变量显示空值。

请帮忙。

我通过更改deserializeAsDictionary来解决此问题以反序列化

1 个答案:

答案 0 :(得分:0)

你必须改变标签。

rows = [dict objectForKey:@"news"];

编辑

NSURL *url = [NSURL URLWithString:@"http://...........jsontest.php"];
NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url];
NSDictionary *results = [jsonreturn JSONValue];

试试这个适合我的。