• IOS5 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]



    Wangkeke 2012-06-02 23:46 发表评论
  • 相关阅读:
    【BZOJ3110】K大数查询(权值线段树套线段树+标记永久化,整体二分)
    【BZOJ3669】魔法森林(LCT)
    art-template前端高性能模板
    spring新心得
    工作流程
    idea操作
    log4j学习
    对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。
    JUnit4学习
    maven搭建
  • 原文地址:https://www.cnblogs.com/cokecoffe/p/2537104.html
Copyright © 2020-2023  润新知