如何在NSMutableArray中存储JSON Dictionary响应

时间:2015-06-07 13:37:58

标签: json swift nsmutablearray

这是我的回答......我的名字是“msg”

{
Result =     {
    Data =         {
        engine =             {
            service =                 {
                data =                     (
                                            {
                        checked = 1;
                        field = 1;
                        name = Ettersyn;
                    },
                                            {
                        checked = 1;
                        field = 1;
                        name = "Med Alpha VP";
                    },
                                            {
                        checked = 0;
                        field = 0;
                        name = "Med B.IMP.";
                    }
                );
                "engine_service_id" = 1;
                "engine_service_name" = "4 Cyl";
            };
            type =                 {
                "engine_id" = 1;
                "engine_name" = Benzin;
            };
        };
        tact =             {
            service =                 {
                data =                     (
                                            {
                        checked = 0;
                        field = 1;
                        name = "Little ettersyn";
                    },
                                            {
                        checked = 0;
                        field = 1;
                        name = "Short ettersyn";
                    }
                );
                "tact_service_id" = 2;
                "tact_service_name" = "21-50 hk";
            };
            type =                 {
                "tact_id" = 1;
                "tact_name" = "2 Takt";
            };
        };
    };
    status = success;
};
}

我尝试存储像这样的数据

var arrayMain : NSMutableArray = msg.valueForKey("Result")?.valueForKey("Data") as NSMutableArray

我的问题是我在运行时出现“EXC_BAD_ACCESS”错误...我也检查数组的分配...我尝试将它存储在NSMutableDictionary中,它的工作完美...我如何将此响应存储在NSMutableArray中?

2 个答案:

答案 0 :(得分:0)

如果仔细查看响应数据结构,您将看到问题。

第一个操作:msg.valueForKey("Result")将返回一个包含两个键/值的字典; “数据”字典和“状态”字符串。

您的第二个操作.valueForKey("Data")会返回一个包含两个键/值的字典;一个“引擎和”策略“字典。

因为它是一本字典,你可以用它来创建一个字典,这就是你所说的工作,或者你将不得不重新考虑你想要存储的方式,如果你确实想要它在数组中,但你可以不直接从字典创建数组 - 它们是不同的数据结构。

答案 1 :(得分:0)

您不能将Dictionary对象分配给Array,这就是它给出错误的原因。

但您可以将该字典存储为数组:

var arrayMain : NSMutableArray = NSMutableArray()

arrayMain.addObject(msg.valueForKey("Result")?.valueForKey("Data"))