2014-10-28 47 views
0

在我使用XML SOAP解析這個IOS得到的是我的迴應字符串轉換在陣列內部監督辦公室,由web服務

<InsertResponse xmlns="http://OrderMe.solyn.in/"><InsertResult>[{"Result":"Success","AccessToken":"f60da1f1-40d7-483d-880a-82348dc20934","AppUserId":"35"}]</InsertResult></InsertResponse> 

然後我使用此代碼爲獲取該代碼響應

-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string { 
    if (elementFound) { 
     // NSLog(@"%@",soapResults); 
     [soapResults appendString: string]; 
     if ([Type isEqualToString:@"InsertResponse"]) { 
      //--- Retrieving text of an element that is found--- 
      NSLog(@"%@",string); 
      NSString *str = [[NSString alloc]initWithData:string encoding:NSUTF8StringEncoding]; 
      NSArray *allData = [str JSONValue]; 

      //NSString *loginID=[NSString stringWithFormat:@"%@",string]; 
      //NSLog(@"Login ID Returned from web service is : %@",loginID); 
     } 
    } 
} 

**的NSLog(@ 「%@」,字符串); **此字符串是打印

[{"Result":"Success","AccessToken":"f60da1f1-40d7-483d-880a-82348dc20934","AppUserId":"35"}] 

,所以我不知道如何這個字符串轉換陣列 我瓦亭響應 請分享您的寶貴知識 問候, NISHANT Chandwani 感謝。

回答

1

你需要分析這個字符串作爲JSON:

NSString *string = @"[{\"Result\":\"Success\",\"AccessToken\":\"f60da1f1-40d7-483d-880a-82348dc20934\",\"AppUserId\":\"35\"}]"; 
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
+0

三江源幫助..... – 2014-10-28 12:52:16

0

首先這是XML parser.So我們怎樣才能從this.Let的值來下面編碼

在您的.h部分

//步驟1:添加委託類

 First of all you should add <NSXMLParserDelegate> 

//步驟2:創建必要的對象

 NSXMLParser *parser; 
    NSMutableData *ReceviedData; 
    NSMutableString *currentStringValue; 

    NSMutableArray *arrayResult; 
    NSMutableArray *arrayAccessToken; 
    NSMutableArray *arrayAppUserId; 

在您的m部分

//Step 3 - Allocate your all Arrays in your viewDidLoad method 

    arrayAppUserId = [NSMutableArray alloc]init]; 
    arrayResult = [NSMutableArray alloc]init]; 
    arrayAccessToken = [NSMutableArray alloc]init]; 

//Step 4 - Create Connection in your viewDidLoad Like 

    [self createConnection:@"http://www.google.com"];//give your valid url. 

-(void)createConnection:(NSString *)urlString 
{ 
    NSURL *url = [NSURL URLWithString:urlString]; 

    //Step 5 - parser delegate methods are using NSURLConnectionDelegate class or not. 
    BOOL success; 
    if (!parser) 
    { 
     parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 
     parser.delegate = self; 
     parser.shouldResolveExternalEntities = YES; 
     success = [parser parse]; 
     NSLog(@"Success : %c",success); 
    } 
    } 

    -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
    { 
     NSLog(@"Current Element Name : %@",elementName); 

    if ([elementName isEqualToString:@"Result"]) 
    { 
     NSLog(@"The Result is==%@",elementName); 
    } 
    if ([elementName isEqualToString:@"AccessToken"]) 
    { 
     NSLog(@"The AccessToken is==%@",elementName); 
    } 
    if ([elementName isEqualToString:@"AppUserId"]) 
    { 
     NSLog(@"The appUserId is==%@",elementName); 
    } 
    } 

    -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
    { 
    currentStringValue = [[NSMutableString alloc] initWithString:string]; 
    NSLog(@"Current String Value : %@",currentStringValue); 
    } 

    -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
    { 
    if ([elementName isEqualToString:@"Result"]) 
    { 
     [arrayResult addObject:currentStringValue]; 
    } 
    if ([elementName isEqualToString:@"AccessToken"]) 
    { 
     [arrayAccessToken addObject:currentStringValue]; 
    } 
    if ([elementName isEqualToString:@"AppUserId"]) 
    { 
     [arrayAppUserId addObject:currentStringValue]; 
    } 
     currentStringValue = nil; 
    }