合并NSArray和NSDictionary的复杂数据结构

时间:2014-05-02 17:47:44

标签: ios objective-c merge nsarray nsdictionary

我有以下数据结构Snapshot,它是嵌套数组和字典的组合:

{"Snapshot": {
    "ask": [
        {
            "price": 101.42,
            "size": 7
        },
        {
            "price": 101.85,
            "size": 5
        }
    ],
    "bid": [
        {
            "price": 89.72,
            "size": 79
        },
        {
            "price": 89.71,
            "size": 158
        }
    ]
}}

上面的现有结构应该通过以下字典/数组结构中的价格和大小条目进行更新:

{"Refresh": {
    "ask": [],
    "bid": [
        {
            "price": 89.71,
            "size": 666
        }
    ],
}}

在此示例中,具有size的{​​{1}}项的值bid应从158更新为666.如果价格尚不存在,则为新项目应添加Refresh数据结构的价格和大小。如果price: 89.71,则应删除价格和尺寸项目。

我尝试使用addEntriesFromDictionaryaddObjectsFromArray方法执行此操作,但确实找到了解决问题的方法。

最快的方法是什么? 您如何建议合并这两个数据结构?

谢谢!

1 个答案:

答案 0 :(得分:1)

假设字典被命名为快照并刷新...

snapshot[@"Snapshot][@"bid"] = [snapshot[@"Snapshot][@"bid"] arrayByAddingObjectsFromArray:refresh[@"Refresh"][@"bid]];

更复杂的数组联合只需要更多代码。如果你想让价格成为一个独特的钥匙,为什么不把它作为一把钥匙?

相关问题