[英]parsing json in objective C
我的json數組是這樣的:
[
{
"result_names": [
"val"
]
},
{
"result_names": [
"val"
]
},
{
"result_names": [
"count",
"sum"
]
}
]
我的輸出應該只是一個帶有字符串val的數組,在數組索引0、1和2處的count和sum(順序無關緊要),並且應該刪除重復項(“ val”重復兩次)。 我能夠消除重復項,但是我不太確定在單獨的索引中第三次出現result_names的情況。 到目前為止,這是我的代碼:
上面的json存儲為:
NSDictionary* json;
NSMutableArray *resultList = [json valueForKey:@"result_names"];
NSArray *res = [[NSSet setWithArray: resultList] allObjects];
現在, NSLog(@"%@", res);
給我:
(
val
),
(
count,
sum
)
)
現在,“ res.count”返回2。我想要val,count和sum在不同的索引中。 請幫助。
您的-valueForKey:
調用返回的是數組數組,因此+setWithArray:
可以對相同的數組進行重復數據刪除,但不能對單個元素進行重復數據刪除。 您將必須執行以下操作:
NSArray *resultLists = [json valueForKey:@"result_names"];
NSMutableSet *results = [NSMutableSet set];
for (NSArray *resultList in resultLists) {
[results addObjectsFromArray:resultList];
}
您可以使用鍵值編碼集合運算符 “ @distinctUnionOfArrays”:
NSArray *json = @[
@{@ "result_names": @[@"val"]},
@{@ "result_names": @[@"val"]},
@{@ "result_names": @[@"sum", @"count"]},
];
NSArray *res = [json valueForKeyPath:@"@distinctUnionOfArrays.result_names"];
NSLog(@"%@", res);
輸出:
( val, count, sum )
(請注意,您的頂級JSON對象是數組,而不是字典。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.