在iOS 5中附加JSON数组

时间:2012-07-14 15:16:41

标签: iphone objective-c ios json ipad

所以我有以下格式的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 个答案:

答案 0 :(得分:0)

我无法看到你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结束。但是,你的问题是追加,所以我建议改用addObjectsFromArray