2012-04-30 44 views
0

我想創建例如下面的JSON對象PARAMS。我曾在iOS 5設備上工作,並可以使用NSJSONSerialization API來實現這一點。例如,我創建了一個通用函數「makeJSONObject()」並使用它。iPhone:格式化的Json PARAMS使用第三方解析器

Sample Payload 1: 
{ 
    token: "kjsdfjl23kkj23kk" 
    entries: [ 
    { 
     "title": "welcome", 
     "name": "myself", 
     "date": "2012-02-06T00:14:20Z", 
    },{ 
     "title": "Hi", 
     "name": "martin", 
     "date": "2012-02-06T00:14:20Z", 
    } 
    ] 
} 

Sample Payload 2: 
{ 
    "email" : "[email protected]", 
    "password" : "pswrd" 
} 

CODE:

NSString *jsonRequest = [appDelegate makeJSONObject:[NSArray arrayWithObjects: emailStr, passwordStr, nil] :[NSArray arrayWithObjects: @"email", @"password", nil] ]; 

-(NSString *) makeJSONObject :(NSArray *)objects :(NSArray *)keys 
{ 
    NSString *theBodyString = NULL; 

    NSDictionary *data = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 

    //NSLog(@"data: %@", data); 

    NSError *writeError = nil;  
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:data options:NSJSONWritingPrettyPrinted error:&writeError]; 


    theBodyString = [[NSString alloc] initWithData:jsonData encoding:NSASCIIStringEncoding]; 

    return theBodyString; 
} 

但是,我想現在支持4.0設備,我現在不能使用NSJSONSerialization API。我可能不得不使用SBJson或類似的東西,我猜,我不知道。有人可以幫助我如何修改我的通用函數以利用 SBJson或某些第三方解析器類?

請幫忙!謝謝。

回答

0

的NSString * jsonRequest = [NSString的stringWithFormat:@ 「& json_data =%@」,[[的NSString stringWithFormat:@ 「{\」 listInvoice \ 「:{\」 CLIENT_ID \ 「:\」 \ 「\」 date_from \ 「:\」 \ 「\ 」DATE_TO \「:\ 」\「,\ 」INVOICE_NUMBER \「:\ 」\「,\ 」invoice_record_status \「:\ 」\「,\ 」invoice_status \「:\」 \ 「,\」page \「:\」1 \「,\」per_page_record \「:\」20 \「}}」] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

+0

你可以這樣試試 – 2012-04-30 07:37:55

+0

我必須動態地添加entires數組,所以在這種情況下可能不會有幫助。請看樣本有效載荷1 :,它有動態創建的條目數組。 – Getsy