生成包含 resultCount 和 results 字段的 JSON,需構造頂層字典,先放入計數,再放入數據數組。
NSMutableArray *list = [NSMutableArray array];
for (int i = 0; i < urls.count; i++) {
NSMutableDictionary *item = [NSMutableDictionary dictionary];
item[@"results"] = names[i];
item[@"URL"] = urls[i];
[list addObject:item];
}
// 關鍵:創建頂層字典,先放計數
NSDictionary *finalDict = @{
@"resultCount": @(list.count),
@"results": list
};
// 序列化
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:finalDict options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
{
"resultCount": 50,
"results": [
{"results": "name1", "URL": "url1"},
{"results": "name2", "URL": "url2"}
]
}
@(list.count) 自動裝箱為 NSNumber,JSON 序列化為數字。results 同時用於頂層字段和項目內字段,建議區分(如項目用 name)避免語義混淆。NSJSONWritingPrettyPrinted 僅調試用,生產環境去掉節省體積。字典包裹數組,輕鬆添加元數據字段。