以JSON格式转换2D NSMutableArray - JSONKit

use*_*142 2 iphone xcode json objective-c

我有以下数组

NSMutableArray* answers;
Run Code Online (Sandbox Code Playgroud)

答案的每个元素本身就是一个对象数组.

我需要将上面的2D数组转换为适当的JSON格式(使用JSONKit框架),以便它可以传递给php应用程序并在此后解码...

各个对象具有以下结构:

@interface Answer : NSObject {
    //NSString* answerId;
    NSString* answer;
    NSString* questionId;
}

//@property (nonatomic, retain) NSString* answerId;
@property (nonatomic, retain) NSString* answer;
@property (nonatomic, retain) NSString* questionId;

@end
Run Code Online (Sandbox Code Playgroud)

也就是说,答案的每个元素都是一个答案对象数组.基本上我需要的是使用JSONKit框架将每个答案对象中的相关数据编码为JSON格式,以便它可以发布到php应用程序并解码....

基本上我需要这种形式的东西:

{{"answer":"1","questionId":"1"},{{"answer":"5","questionId":"2"},......}

Pat*_*ini 5

与所有其他JSON框架一样,JSONKit与自定义对象不兼容.为此,您需要遍历对象并将它们放入JSONKit可以理解的对象(NSArrays和NSDictionaries)中.像这样的东西:

NSMutableArray *jAnswers = [[[NSMutableArray alloc] init] autorelease];
for(Answer *answ in answers)
{
    NSMutableDictionary *jAnswer = [[[NSMutableDictionary alloc] init] autorelease];
    [jAnswer addObject: answ.answer forKey: @"answer"];
    [jAnswer addObject: answ.questionId forKey: @"questionId"];
    [jAnswers addObject: jAnswer];
}

NSString *jAnswersJSONFormat = [jAnswers JSONString];
Run Code Online (Sandbox Code Playgroud)

会给你:

[{"answer": "1", "questionId": "1"}, {"answer": "5", "questionId": "2"}, ...]
Run Code Online (Sandbox Code Playgroud)