2012-04-30 16 views
0

たとえば、以下のようなJSONオブジェクトパラメータを作成したいとします。私は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 \ "\"、\ "、\"、\ "、\"、\ "、\"、 "; \"ページ\ ":\" 1 \ "、\" per_page_record \ ":\" 20 \ "}}" "stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

+0

このように試すことができます –

+0

私は動的にエントリーの配列を追加する必要があるため、その場合は役立たない可能性があります。 Plsは、動的に作成されたエンティティの配列を持つSample Payload 1:を見ます。 – Getsy