2012-06-21 44 views
-2

阅读代码,我需要从URL中的IOS读取JSON数据代码(目标C)IOS JSON从URL

如果您有简单的例子,我那么它为我好

我想补充的阅读json方法进行委托。

+0

什么样的代表? – 2012-06-21 12:27:09

+0

我认为他的意思是应用程序委托..但它会很高兴看到多一点努力去问问题... –

+0

亚它是在AppDelegate ..我有搜索很多,但无法找到... – user1472076

回答

-1
-(NSArray*)StringToArray:(NSString*)str seprator:(NSString*)sep{ 

NSArray *retArray = [str componentsSeparatedByString:[[NSString alloc] initWithFormat:@"%@",sep]]; 

return retArray; 
} 
-(NSString*)getValueFromIndex:(NSString*)indexVal withArray:(NSArray *)warray{ 
NSString *retVal = @""; 
for(id list in warray) 
{ 
    NSMutableArray *response = [self performSelector:@selector(StringToArray:seprator:) withObject:list withObject:@"\":\""];  


    NSString *str = [response objectAtIndex:0]; 

    str = [str stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 
    if([str isEqualToString:indexVal]) 
    { 
     retVal = [response objectAtIndex:1];   
     retVal = [retVal stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 

     break; 
    } 
} 
return retVal; 
} 
-(NSString*)getValue:(NSString*)val fromArray:(NSString*)arr{ 
NSString *retArray = @""; 

NSMutableArray *mData = [self performSelector:@selector(StringToArray:seprator:) withObject:arr withObject:@"\",\""]; 

NSArray *m1; 
for(int i=0;i<[mData count];i++) 
{ 
    NSString *str= [mData objectAtIndex:0]; 

    str=[str stringByReplacingOccurrencesOfString:@"\"\":" withString:@""]; 
    [mData removeObjectAtIndex:0]; 
    [mData insertObject:str atIndex:0]; 
    m1 = [self performSelector:@selector(StringToArray:seprator:) withObject:[mData objectAtIndex:i] withObject:@"\":\""]; 
    NSString *st = [[NSString alloc] initWithFormat:@"%@",[m1 objectAtIndex:0]]; 
    //UTF8 

    st = [st stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 

    if([st isEqualToString:val]) 
    { 
     retArray = [[NSString alloc] initWithFormat:@"%@",[m1 objectAtIndex:1]]; 
     break; 
    } 
} 
return retArray; 
} 
-(NSString*)getImageValue:(NSString*)val fromArray:(NSString*)arr{ 
//NSString *retArray = @""; 

NSArray *mData = [self performSelector:@selector(StringToArray:seprator:) withObject:arr withObject:@","]; 

NSArray *m1; 
//for(int i=0;i<[mData count];i++) 
//{ 
m1 = [self performSelector:@selector(StringToArray:seprator:) withObject:[mData lastObject] withObject:@"image"]; 
NSString *st = [[NSString alloc] initWithFormat:@"%@",[m1 objectAtIndex:1]]; 
st= [st stringByReplacingOccurrencesOfString:@"\":\"" withString:@""];  
NSLog(@" Image string %@",st); 
//UTF8 

// st = [st stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 

//if([st isEqualToString:val]) 
//{ 
//retArray = [[NSString alloc] initWithFormat:@"%@",[m1 objectAtIndex:1]]; 
//break; 
//} 
//} 
NSLog(@"st %@",st); 
return st; 
} 
1
-(NSString*)SendWebURL:(NSString*) posturl SendWebPostData:(NSString*) post1 { 
NSString *data; 
if([self ConnectToInternet]){ 
    NSData *postData = [post1 dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:[NSURL URLWithString:[[NSString alloc] initWithFormat:@"%@",posturl]]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [request setHTTPBody:postData]; 

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

    data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]; 

} 
else 
{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"Internet connection is not available" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
} 
return data; 
} 
0

使用ASIHTTPRequest

以下是示例代码来获得JSON ..

派发出呼叫您的WS

NSURL *url = [NSURL URLWithString:@"Your URL"]; 
    ASIFormDataRequest *alertRequest = [ASIFormDataRequest requestWithURL:url]; 
    [alertRequest setRequestMethod:@"POST"]; 
    [alertRequest setDelegate:self]; 
    [alertRequest setTimeOutSeconds:60]; 
    [alertRequest setNumberOfTimesToRetryOnTimeout:4]; 
    [alertRequest addRequestHeader:@"Content-Type" value:@"application/json"]; 
    [alertRequest setDidStartSelector:@selector(getRequestStarted:)]; 
    [alertRequest setDidFinishSelector:@selector(getRequestFinished:)]; 
    [alertRequest setDidFailSelector:@selector(getRequestFailed:)]; 
    [alertRequest appendPostData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]]; 
    [alertRequest startAsynchronous]; 

至获取JSON

- (void)getRequestFinished:(ASIHTTPRequest *)request 
{ 
    [HUD hide: YES]; 

    NSString* jsonResponseString = [request responseString]; 
    NSLog(@"Response JSON for Authenticate User: %@", jsonResponseString); 
    NSDictionary *aAlertResponse = [jsonResponseString objectFromJSONString]; 
    if ([[aAlertResponse valueForKey:@"status"] isEqualToString:@"success"]) 
    { 
//From NSDictiornary you can get all json as name value pair.. 

    } 
} 

希望这会有所帮助..

+0

看来,ASIHTTPRequest不再被维护。即使这个图书馆的作者建议我们使用别的东西。最好考虑使用AFNetworking:https://github.com/AFNetworking/AFNetworking/ –

+0

是的,我同意..仍然我的代码正常工作..它是一个可靠的代码...为什么我得到负面.. :( –

+0

我的回答适合所问的问题......你应该重新考虑你的投票。 –