在 iOS 5 中附加 JSON 数组
Posted
技术标签:
【中文标题】在 iOS 5 中附加 JSON 数组【英文标题】:appending JSON array in iOS 5 【发布时间】:2012-07-14 15:16:40 【问题描述】:所以我有一个格式如下的 JSON:
"data":
"last_updated": 1342277036,
"stream": [
"action":
,
"to": [
],
"from": [
],
"timestamp": 1342276421
,
"action":
,
"to": [
],
"from": [
],
"timestamp": 1342276421
,
"action":
,
"to": [
],
"from": [
],
"timestamp": 1342276421
,
然后我提出另一个请求并得到相同的响应。我想结合这两个 JSON,基本上将我拥有的新“流”数组附加到旧的。以下是我迄今为止所做的失败:
NSMutableArray *streamArray =
[NSMutableArray arrayWithArray:[[streamDiskData valueForKey:@"data"] valueForKey:@"stream"]];
NSArray *newFeeds = [[jsonData valueForKey:@"data"] valueForKey:@"stream"];
//append the old JSON array with the new feeds stream
[streamArray insertObjects:newFeeds atIndexes:indexSet];
所以streamDiskData
是旧的 JSON,jsonData
是新的 JSON。我做错了什么,我该怎么做?
【问题讨论】:
我没有对你投反对票,但如果你想让你的问题尽可能好(帮助我们给你最好的答案),你可以做一些事情:(1)发布的objective-c 和json 格式都很差,这使得阅读起来有点困难,并且(2)在你的objc 代码中,indexSet
是一个重要的变量,但你没有告诉我们那是什么。因此,这使得判断错误在哪里变得更加困难。 (3) 您也没有指定它是如何失败的。只是没有附加?坠毁?没有在索引处交错数据?这是我对为什么投反对票的最佳猜测。
【参考方案1】:
我看不到您的 indexSet
实际上是什么,但请尝试使用更像这样的东西:
NSMutableArray *streamArray =
[NSMutableArray arrayWithArray:[[streamDiskData valueForKey:@"data"] valueForKey:@"stream"]];
NSArray *newFeeds = [[jsonData valueForKey:@"data"] valueForKey:@"stream"];
//append the old JSON array with the new feeds stream
[streamArray addObjectsFromArray: newFeeds];
addObjectsFromArray
是您用来追加第二个数组的内容。 insertObjects:atIndexes:
可用于在其他位置插入newArray
数据,而不仅仅是streamArray
的end。但是,您的问题是追加,所以我建议改用addObjectsFromArray
。
【讨论】:
以上是关于在 iOS 5 中附加 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章