在 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 数据,而不仅仅是streamArrayend。但是,您的问题是追加,所以我建议改用addObjectsFromArray

【讨论】:

以上是关于在 iOS 5 中附加 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章

Swift JSON响应两个字段值附加到单个数组中

将值附加到存储在 MySQL 中的 JSON 解码数组参数

解析 JSON 数据时无法将字符串附加到数组

将 JSON 数组附加到字符串数组

使用 postgres 9.4 将 JSON 元素附加到数组

如何快速将 json 附加到我的数组中