如何在ios中解析json

Posted

技术标签:

【中文标题】如何在ios中解析json【英文标题】:How to json parsing in ios 【发布时间】:2015-10-29 13:30:40 【问题描述】:

我是 ios 开发的新手,所以我需要从基础层面逐步指导,我使用了很多链接,但所有链接都为我提供了直接的项目代码,然后开始我需要了解所有的想法是如何像布局和开发一样工作的。

【问题讨论】:

欢迎来到 ***!请参考此***.com/help/how-to-ask 以提出正确的问题。 JSON Parsing in iOS 7的可能重复 【参考方案1】:

你可以使用 NSJSONSerialization 类 https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class/

NSDictionary *responseObject = [NSJSONSerialization
JSONObjectWithData:responseData options:self.readingOptions   
error:&serializationError];

【讨论】:

然后详细询问您正在尝试做什么您尝​​试了什么以及什么不起作用。 您的 json 对象已转换为 NSDictionary,因此您可以在任何情况下使用它,您还期待什么?说明你想怎么用? 是的,我需要一步一步的例子。就像 step-1 创建 xcode 新项目。第 2 步等等....【参考方案2】:

对于 json 解析,您可以使用 AFNetworking。 它非常简单和有用的平台,具有简单和复杂的 json 解析。

您可以使用以下链接了解更多信息

http://www.raywenderlich.com/59255/afnetworking-2-0-tutorial

【讨论】:

【参考方案3】:

对于json解析,您可以使用简单的NSJsonSerialization。您可以使用json解析post将数据发布到服务器,也可以使用json解析GET方法从服务器获取数据。

将数据发布到服务器的第一个 POST

//STEP 1 :Here give YOUR URL instead of my URL
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://192.168.3.128:8050/RestWebService/rest/person"]];


//STEP 2 :create the Method "POST"
[request setHTTPMethod:@"POST"];

//STEP 3 :Pass The String to server(YOU SHOULD GIVE YOUR PARAMETERS INSTEAD OF MY PARAMETERS)
NSString *userUpdate =[NSString strin gWithFormat:@"user_email=%@&user_login=%@&user_pass=%@&  last_upd_by=%@&user_registered=%@&",txtemail.text,txtuser1.text,txtpass1.text,txtuser1.text,datestr,nil];

//STEP 4 :Check The Value what we passed
NSLog(@"the data Details is =%@", userUpdate);

//STEP 5 :Convert the String to Data
NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding];

//STEP 7 :Apply the data to the body
[request setHTTPBody:data1];

//STEP 8 :Create the response and Error
NSError *err;
NSURLResponse *response;

//STEP 9 :send synchronous request to server  
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];

//STEP 10 :getting the response 
NSString *resSrt = [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding];

//STEP 11:Check whether we got the Response or Not
NSLog(@"got response==%@", resSrt);
if(resSrt)

  NSLog(@"got response");

else

   NSLog(@"faield to connect");

第二次使用 NSJsonSerialization 方法从服务器获取响应

//STEP 1 :Here give YOUR URL instead of my URL
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL  URLWithString:@"http://api.worldweatheronline.com/free/v1/search.ashx?query=London&num_of_results=3&format=json&key=xkq544hkar4m69qujdgujn7w"]];

//STEP 2 :create the Method "GET" 
[request setHTTPMethod:@"GET"];

//STEP 3 : set request as Json format value type 
[request setValue:@"application/json;charset=UTF-8" forHTTPHeaderField:@"content-type"];

//STEP 4 : Create the response and Error 
NSError *err;
NSURLResponse *response;

//STEP 5 :send synchronous request to server  
NSData *responseData = [NSURLConnection sendSynchronousRequest:request   returningResponse:&response error:&err];

//You need to check response.Once you get the response copy that and paste in ONLINE JSON VIEWER.If you do this clearly you can get the correct results.    

//After that it depends upon the json format whether it is DICTIONARY or ARRAY 

//STEP 6 :Get the response to dictionary or array depends upon the response
NSDictionary *jsonArray = [NSJSONSerialization JSONObjectWithData:responseData options: NSJSONReadingMutableContainers error: &err];

【讨论】:

以上是关于如何在ios中解析json的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中解析 mapquest 地理编码 JSON

如何在 Objective-C iOS 中解析 JSON

如何在 ios 中解析这种类型的 JSON 响应? [复制]

当字典在iOS中没有标题时如何解析JSON?

如何在ios中正确解析json?

如何在请求正文中设置对象名称以在 Ios 中解析 json