色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

ios重新組裝json數(shù)據(jù)

錢諍諍1年前8瀏覽0評論

iOS開發(fā)中,我們經(jīng)常會涉及到重新組裝JSON數(shù)據(jù)的場景。有時候第三方接口返回的JSON數(shù)據(jù)格式不符合我們的需求,需要對其進行重新組裝。下面就來看一下如何在iOS中重新組裝JSON數(shù)據(jù)。

首先,我們需要先將原始的JSON數(shù)據(jù)轉化為可操作的對象,這里使用iOS自帶的NSJSONSerialization來實現(xiàn):

NSError *error = nil;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

data是原始的JSON數(shù)據(jù),通過NSJSONSerialization轉化為NSDictionary對象。

接下來,我們可以對NSDictionary對象進行操作,重新組裝數(shù)據(jù)。

NSMutableArray *newArr = [[NSMutableArray alloc] init];
NSArray *oldArr = jsonDict[@"old_array"];
for (NSDictionary *oldDic in oldArr) {
NSMutableDictionary *newDic = [[NSMutableDictionary alloc] init];
[newDic setObject:oldDic[@"name"] forKey:@"Name"];
[newDic setObject:oldDic[@"age"] forKey:@"Age"];
[newArr addObject:newDic];
}
NSMutableDictionary *newJson = [[NSMutableDictionary alloc] init];
[newJson setObject:newArr forKey:@"new_array"];
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:newJson options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

以上代碼將原始的JSON數(shù)據(jù)中的old_array里的數(shù)據(jù)重新組裝成了new_array,并將結果轉化為JSON字符串。

最后,我們需要注意JSON的數(shù)據(jù)格式問題。在iOS開發(fā)中,推薦使用JSON的pretty格式,方便查看數(shù)據(jù)。在對JSON數(shù)據(jù)進行轉化時,需要使用NSJSONWritingPrettyPrinted選項:

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:newJson options:NSJSONWritingPrettyPrinted error:&error];

以上就是iOS重新組裝JSON數(shù)據(jù)的實現(xiàn)方法。通過NSJSONSerialization將原始數(shù)據(jù)轉化為可操作的NSDictionary對象,然后對對象進行操作,再將結果轉化為JSON字符串輸出。注意格式問題,避免出現(xiàn)不必要的錯誤。