Objective-C Json 实例详解

 更新时间:2017年10月29日 10:23:28   作者:松阳  
这篇文章主要介绍了 Objective-C Json 实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握Object-C Json的使用,需要的朋友可以参考下

Objective-C Json 实例详解

通过使用NSJSONSerialization 可以Json与Foundation的相互转换。下面具体介绍 Objective-c json 的使用。

Json To Fundation

使用 JSONObjectWithData 可以将 Json 转化为 Foundation。Json的顶层可以是{} 或 []因此可以有 NSDictionary 和 NSArray 两种格式。读取使用 ObjectForKey 返回对应的对象。

NSString* items = @"{"items":["item0","item1","item2"]}";
 
NSData *data= [items dataUsingEncoding:NSUTF8StringEncoding];
 
NSError *error = nil;
 
id jsonObject = [NSJSONSerialization JSONObjectWithData:data 
          options:NSJSONReadingAllowFragments 
          error:&error];
 
if ([jsonObject isKindOfClass:[NSDictionary class]]){
 
  NSDictionary *dictionary = (NSDictionary *)jsonObject;
 
  NSLog(@"Dersialized JSON Dictionary = %@", dictionary);
 
}else if ([jsonObject isKindOfClass:[NSArray class]]){
 
  NSArray *nsArray = (NSArray *)jsonObject;
 
  NSLog(@"Dersialized JSON Array = %@", nsArray);
 
} else {
 
  NSLog(@"An error happened while deserializing the JSON data.");
 
}
 
NSDictionary *dict = (NSDictionary *)jsonObject;
 
NSArray* arr = [dict objectForKey:@"items"];
NSLog(@"list is %@",arr);

Fundation To Json

使用 dataWithJsonObject 可以将 Fundation 转换为 Json。其中 options:NSJSONWritingPrettyPrinted 是分行输出json ,无空格输出使用 option:kNilOptions。

下面这段代码是IOS内购获取商品列表。获取后,将内容添加到Json中。

NSArray *myProduct = response.products;
NSDictionary *myDict;
NSMutableDictionary *dict = [NSMutableDictionary 
                dictionaryWithCapacity: 4];
 
for(int i = 0;i<myProduct.count;++i)
{
 
  //NSLog(@"----------------------");
  //NSLog(@"Product title: %@" ,[myProduct[i] localizedTitle]);
  //NSLog(@"Product description: %@" ,[myProduct[i] localizedDescription]);
  //NSLog(@"Product price: %@" ,[myProduct[i] price]);
  //NSLog(@"Product id: %@" ,[myProduct[i] productIdentifier]);
 
  myDict = [NSDictionary dictionaryWithObjectsAndKeys:
          [myProduct[i] localizedTitle], @"title",
          [myProduct[i] localizedDescription], @"desc",
          [myProduct[i] price], @"price",
          [myProduct[i] productIdentifier], @"product", nil];
 
  [dict setValue: myDict forKey: [myProduct[i] productIdentifier]];
}
if([NSJSONSerialization isValidJSONObject:dict])
{
  NSError* error;
  NSData *str = [NSJSONSerialization dataWithJSONObject:dict 
            options:kNilOptions error:&error];
  NSLog(@"Result: %@",[[NSString alloc]initWithData:str 
              encoding:NSUTF8StringEncoding]);
}
else
{
  NSLog(@"An error happened while serializing the JSON data.");
}    

 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • CocoaPods1.9.0 安装使用教程详解

    CocoaPods1.9.0 安装使用教程详解

    CocoaPods是OS X和iOS下的一个第三类库管理工具,这篇文章主要介绍了CocoaPods1.9.0 安装使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 详解ios中scrollView上使用masonry

    详解ios中scrollView上使用masonry

    本篇文章主要给大家详细分析了ios开发中scrollView上使用masonry的详细知识内容,需要的朋友参考下吧。
    2018-02-02
  • 简单谈谈c/c++中#import、#include和@class的区别

    简单谈谈c/c++中#import、#include和@class的区别

    对于#import,我想做过iOS开发的人应该都不陌生。在开发过程中,当我们需要声明某一个类时,都需要去引用。而#imclude的话,在我们学习C时就已经知道了,他的作用也是引用声明的意思。在表面上他们的作用似乎都是一样的。但是在具体功能实现方式上,还是有着很大的区别。
    2018-01-01
  • iOS微信第三方登录实现

    iOS微信第三方登录实现

    这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • IOS开发之@property的详细介绍

    IOS开发之@property的详细介绍

    这篇文章主要介绍了IOS开发之@property的详细介绍的相关资料,希望通过本文能帮助到大家,大家理解并会使用,需要的朋友可以参考下
    2017-09-09
  • iOS App开发中Core Data框架基本的数据管理功能小结

    iOS App开发中Core Data框架基本的数据管理功能小结

    除了使用SQL关系型数据库,我们还可以使用Xcode中提供的Core Data来进行表结构数据处理,这里我们就来初步整理iOS App开发中Core Data框架基本的数据管理功能小结:
    2016-06-06
  • iOS NSThread和NSOperation的基本使用详解

    iOS NSThread和NSOperation的基本使用详解

    下面小编就为大家分享一篇iOS NSThread和NSOperation的基本使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 深入学习iOS7自定义导航转场动画

    深入学习iOS7自定义导航转场动画

    这篇文章主要为大家详细介绍了iOS7自定义导航转场动画的相关资料,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • iOS设置圆角的三种方式

    iOS设置圆角的三种方式

    本文给大家分享ios设置圆角的三种方式,相对来说最简单的一种是第一种方法,具体内容详情参考下本文
    2017-03-03
  • iOS文字渐变色效果的实现方法

    iOS文字渐变色效果的实现方法

    在大家日常开发iOS的过程中,可能会遇到要实现文字渐变色的效果,这篇文章文章通过示例代码和详细的步骤介绍了如何利用iOS实现文字渐变色的效果,实现后的很不错,感兴趣的朋友们下面来一起看看吧。
    2016-10-10

最新评论