ios中将nsdata类型的数据放到字典里,在封装成json可以吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios中将nsdata类型的数据放到字典里,在封装成json可以吗相关的知识,希望对你有一定的参考价值。

参考技术A 首先需要确定你的json解析出来的是什么类型的,下面提供的是NSData型的,如果解析出来是其他类型需要先转为NSData: NSData *data; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];本回答被提问者采纳

我将一些数据发送到 web 服务,它返回一些 JSON 作为 NSData。如何转换为字典?(iOS 4.3)

【中文标题】我将一些数据发送到 web 服务,它返回一些 JSON 作为 NSData。如何转换为字典?(iOS 4.3)【英文标题】:I send some data to a webservice, it returns some JSON as NSData. How to convert to Dict?(iOS 4.3) 【发布时间】:2012-07-05 07:44:25 【问题描述】:

我将一些凭据发送到网络服务。

我可以得到 NSData 或 NSString 的响应。

将(NSData 或 NSString)JSON 转换为 NSDictionary 以便我处理它的最简单方法是什么?

为 iOS4.3 构建 非常感谢, -代码

【问题讨论】:

第一次复制: NSDataNSString => Here。 第二次复制:“JSON”到NSDictionary => Here。 【参考方案1】:

从 iOS 5.0 起,您可以使用NSJSONSerialization,文档here。

有一个很好的使用教程,here。

【讨论】:

【参考方案2】:

使用链接下载 SBJsonParser 框架,http://github.com/stig/json-framework/downloads 并将所需的类添加到您的项目 (SBJsonParser.h)。

导入 SBJsonParser.h 并使用以下代码,

    SBJsonParser *parser = [[SBJsonParser alloc] init];

     //dictionary with name,id
     NSDictionary *jsonObject = [parser objectWithString:jsonString error:NULL];  

     //name array                
      NSMutableArray *nameArray = [[NSMutableArray alloc]init];
   for (NSMutableDictionary *dic in jsonObject)

      [nameArray addObject:[dic valueForKey:@"name"]];
    

【讨论】:

【参考方案3】:

使用这个:

NSString *urlString = [NSString stringWithFormat:kURLString,self.chapter,self.page];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[urlString dataUsingEncoding:NSISOLatin1StringEncoding]];

NSData* responseData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:nil error:nil];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSISOLatin1StringEncoding];


NSDictionary* result = [(NSDictionary*)[responseString JSONValue] objectForKey:@"Result"];

【讨论】:

JSONValue 方法来自什么库? 您必须在项目中添加 JSON 类,为此从 gitHub 下载它,然后在您要解析数据的所需类中 #import "JSON.h"。【参考方案4】:

我用的是 SBJson

NSArray *arrObj = (NSArray*)[[JsonParser sharedJsonParser] getObjectsFromJsonString:responseString];

这里的响应字符串是一个JSON字符串

【讨论】:

以上是关于ios中将nsdata类型的数据放到字典里,在封装成json可以吗的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中将 NSData 变量转换为 NSInteger 变量

我将一些数据发送到 web 服务,它返回一些 JSON 作为 NSData。如何转换为字典?(iOS 4.3)

iOS 字典和NSData之间转换

通过点对点同时发送字符串和 NSData?

ios 中怎样将汉字转成nsdata

如何在 Swift 3 中将字典表示为 NSValue?