1

したがって、次の形式の JSON があります。

{
    "data": {
        "last_updated": 1342277036, 
        "stream": [
            {
                "action": {
                },
                "to": [
                ], 
                "from": [
                ],  
                "timestamp": 1342276421
            }, 
            {
                "action": {
                },
                "to": [
                ], 
                "from": [
                ],  
                "timestamp": 1342276421
            }, 
            {
                "action": {
                },
                "to": [
                ], 
                "from": [
                ],  
                "timestamp": 1342276421
            },

次に、別のリクエストを行い、同じ応答を取得します。これら 2 つの 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 です。私は何を間違っていますか、どうすればこれを行うことができますか?

4

1 に答える 1

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];

addObjectsFromArray2 番目の配列 を追加するために使用するものです。の末尾以外の場所にデータinsertObjects:atIndexes:を挿入する場合に便利です。しかし、あなたの質問はappendと言ったので、代わりに使用することをお勧めします。newArraystreamArrayaddObjectsFromArray

于 2012-07-14T21:40:46.050 に答える