2015-02-09 67 views
1

如何将NSArray或NSDictionary的值传递给JSON.Its可能与否。现在我已经完成NSDictionary值和NSArray值转换为JSON.But我与PHP连接我的PHP代码具有编码和解码方法与编码和解码如何可以从JSON获得我的回复吗?以及如何从该响应中获取值?将NSDictionary或NSArray POST成JSON?

我试图转换JSON格式以下代码::

// Empty array 
    NSArray *emptyArray = @[]; 

    // Single element array 
    NSArray *singleElementArray = @[@"Error Message"]; 

    // Array of strings 
    NSArray *arrayOfStrings = @[@"First Name", @"Last Name"]; 

    // Array of above arrays 
    NSArray *arrayOfObjects = @[emptyArray, singleElementArray, arrayOfStrings]; 

    // Dictionary with several kay/value pairs and the above array of arrays 
    NSDictionary *dict = @{@"BlogName" : @"iOS Developer Tips", 
          @"BlogDomain" : @"iOSDeveloperTips.com", 
          @"Array" : arrayOfObjects}; 

    NSError *error = nil; 
    NSData *json; 

    // Dictionary convertable to JSON ? 
    if ([NSJSONSerialization isValidJSONObject:dict]) 
    { 
     // Serialize the dictionary 
     json = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error]; 

     NSLog(@"json: %@", json); 


     // If no errors, let's view the JSON 
     if (json != nil && error == nil) 
     { 
      NSString *jsonString = [[NSString alloc] initWithData:json encoding:NSUTF8StringEncoding]; 

      NSLog(@"JSON conversion: %@", jsonString); 


     } 
    } 

我从jsonString。我正确的价值观有发布此字符串JSON POST方法其工作正常,但我需要的NSDictionary的NSArray或后有到JSON.HOW?

+0

你需要证明什么是你的NSArray和你想要的JSON是什么样子。对于一个模糊的问题,答案太多了。 – 2015-02-09 13:21:53

回答

1

最后我得到了解决办法::

// iOS 5 Json Serialization

NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"value1",@"username",@"value2",@"password", nil]; 
NSLog(@"dict :: %@",dict);// What ever parametere you want send value and key pair in this dictionary. 
NSError *error2; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:&error2]; 
NSString *post = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 
NSLog(@"postLength :: %@",postLength); 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
[request setURL:[NSURL URLWithString:@"http://localhost:8000/api/v1/login/"]];// URL post URl change here. 
[request setHTTPMethod:@"POST"]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[request setHTTPBody:postData]; 

NSURLResponse *response; 
NSError *error3; 
NSData *POSTReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error3]; 

NSString *str = [[NSString alloc] initWithData:POSTReply encoding:NSUTF8StringEncoding]; 
NSLog(@"str :: %@",str); 

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:POSTReply 
                options:NSJSONReadingMutableContainers 
                 error:&error3]; 

NSLog(@"parsedvalue%@",json);