IOS5.0 自带JSON解析

IOS5.0开始支持JSON,所以不用第三方的解析了。

//Foundation(NSDictionaryNSData) 转换为JSon格式的NSData 用来发送

//+ dataWithJSONObject:options:error:

 

//JSON格式的Data转换为Foundation(NSDictionaryNSData)   用来解析

//+ JSONObjectWithData:options:error:

code:

https://github.com/cokecoffe/ios-demo/tree/master/HTTP

  1. 解析json成dic对象

  2. -(void)fetchedData:(NSData*)responseData {//parse out the json dataNSError* error;
  3. NSDictionary* json =[NSJSONSerialization
  4. JSONObjectWithData:responseData //1

  5. options:kNilOptions
  6. error:&error];

  7. NSArray* latestLoans =[json objectForKey:@"loans"]; //2

  8. NSLog(@"loans: %@", latestLoans); //3
  9. }

  10. 把对象生成json string
  11. //build an info object and convert to json
  12. NSDictionary* info =[NSDictionary dictionaryWithObjectsAndKeys:[loan objectForKey:@"name"],
  13. @"who",
  14. [(NSDictionary*)[loan objectForKey:@"location"]
  15. objectForKey:@"country"],
  16. @"where",
  17. [NSNumber numberWithFloat: outstandingAmount],
  18. @"what",
  19. nil];

  20. //convert object to data
  21. NSData* jsonData =[NSJSONSerialization dataWithJSONObject:info
  22. options:NSJSONWritingPrettyPrinted error:&error];

  23. //print out the data contents
  24. jsonSummary.text =[[NSString alloc] initWithData:jsonData
  25. encoding:NSUTF8StringEncoding];

  26. 添加json方法至dic
  27. @interfaceNSDictionary(JSONCategories)
  28. +(NSDictionary*)dictionaryWithContentsOfJSONURLString:(NSString*)urlAddress;
  29. -(NSData*)toJSON;
  30. @end

  31. @implementationNSDictionary(JSONCategories)
  32. +(NSDictionary*)dictionaryWithContentsOfJSONURLString:(NSString*)urlAddress{
  33. NSData* data =[NSData dataWithContentsOfURL:[NSURL URLWithString: urlAddress]];
  34. __autoreleasing NSError* error =nil;
  35. id result =[NSJSONSerialization JSONObjectWithData:data
  36. options:kNilOptions error:&error];
  37. if(error !=nil)returnnil;
  38. return result;
  39. }

  40. -(NSData*)toJSON{
  41. NSError* error =nil;
  42. id result =[NSJSONSerialization dataWithJSONObject:self
  43. options:kNilOptions error:&error];
  44. if(error !=nil)returnnil;
  45. return result;
  46. }@end

  47. 使用列子
  48. NSDictionary* myInfo =[NSDictionary dictionaryWithContentsOfJSONURLString:@"http://www.yahoo.com/news.json"];
  49. NSDictionary* information =[NSDictionary dictionaryWithObjectsAndKeys:@"orange",@"apple",@"banana",@"fig",nil];
  50. NSData* json =[information toJSON];

  51. 判断是否可json化

  52. BOOL isTurnableToJSON =[NSJSONSerialization isValidJSONObject: object]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值