2

だから私はnsdictionaryに変換したい配列を持っています。私のプロセスはうまくいきますが、json 文字列に見出しを追加したいと思います。

NSArray *showarray = [[MMIStore defaultStore] loadAllShows ];
NSMutableArray* jsonArray = [[NSMutableArray alloc] init];

for (Show* show in showarray) {
    NSMutableDictionary* showDictionary = [[NSMutableDictionary alloc] init];
    [showDictionary setObject:show.showid forKey:@"Showid"];
    [jsonArray addObject:showDictionary];
}  
NSData* nsdata = [NSJSONSerialization dataWithJSONObject:jsonArrayoptions:NSJSONReadingMutableContainers error:nil];
NSString* jsonString =[[NSString alloc] initWithData:nsdata encoding:NSUTF8StringEncoding];
NSLog(@"%@", jsonString);

以下の出力:

{[
  {
    "Showid" : "10027"
  },
  {
    "Showid" : "10707"
  },
  {
    "Showid" : "10759"
  }.....

]

こんな感じにするにはどうしたらいいですか

{
    "Shows":[
  {
    "Showid" : "10027"
  },
  {
    "Showid" : "10707"
  },
  {
    "Showid" : "10759"
  }....
]
}
4

2 に答える 2

3
NSMutableString *jsonString1 = [[@"{Shows:[" stringByAppendingString:jsonString] stringByAppendingString:@"]}"];

jsonstring は文字列なので、変更できます。

お役に立てれば..

編集:

NSString *jsonString1 = [NSString stringWithFormat:@"{"Shows":%@}",jsonString];
于 2013-02-14T16:31:43.787 に答える
2

配列を正しいキーで辞書に追加するだけです。

NSArray *showarray = [[MMIStore defaultStore] loadAllShows];
NSMutableArray* jsonShowsArray = [[NSMutableArray alloc] init];

for (Show* show in showarray) {
    NSMutableDictionary* showDictionary = [[NSMutableDictionary alloc] init];
    [showDictionary setObject:show.showid forKey:@"Showid"];
    [jsonShowsArray addObject:showDictionary];
}  

NSDictionary* jsonDictionary = [NSDictionary dictionaryWithObject:jsonShowsArray 
                                                           forKey:@"Shows"]

NSData* nsdata = [NSJSONSerialization dataWithJSONObject:jsonDictionary 
                                                 options:NSJSONReadingMutableContainers 
                                                 error:nil];
于 2013-02-14T17:00:13.410 に答える