Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Mantle-Swift解析JSON_Json_Swift_Metal - Fatal编程技术网

用Mantle-Swift解析JSON

用Mantle-Swift解析JSON,json,swift,metal,Json,Swift,Metal,我正在使用mantle用Swift解析JSON数据。JSON文件的内容包括: { "Name1": [ { "Type": "New", "Available": true, "Kind": "4178228729", "Loot": "4367", "Advanced": [ { "Type": "Old", "Name": "

我正在使用mantle用Swift解析JSON数据。JSON文件的内容包括:

{
    "Name1": [
      {
        "Type": "New",
        "Available": true,
        "Kind": "4178228729",
        "Loot": "4367",
        "Advanced": [
          {
            "Type": "Old",
            "Name": "RoundRobin",
        "Available": true,
            "Specs": [
              {
                "Type": "Fire",
                "Available": true,

                "Actions": [


                --continues with similar pattern--
    ],
    "Name2": [
                --repeats the same pattern at before--
    ]
}
我创建了模型类,继承了MTLJSONSerialization。“第一级类”包含两个顶级对象数组

import Foundation

class lv1Class: MTLJSONSerializing {
    let name1: Array<lv2Class> = []
    let name2: Array<lv2Class> = []


        class func name2JSONTransformer() -> NSValueTransformer {
        return NSValueTransformer.mtl_JSONArrayTransformerWithModelClass(lv2Class.self)
    }

        class func name1JSONTransformer() -> NSValueTransformer {
        return NSValueTransformer.mtl_JSONArrayTransformerWithModelClass(lv2Class.self)
    }

        override class func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject]!
    {
        return ["name1": "Name1",
            "name2": "Name2"]
    }
}
testDic是上面发布的文件

我为获取json数据所做的调用成功了,我非常确信问题出在我的数据模型中。字典的值是一个数组,所以我很有信心将它解析为一个数组

我得到的错误是:

Assertion failure in -[MTLJSONAdapter initWithJSONDictionary:modelClass:error:], /Users/xx/Documents/Xcode/My_project/Pods/Mantle/Mantle/MTLJSONAdapter.m:149
2015-03-14 14:34:20.331 My_project[25794:711328] *** Caught exception available is not a property of My_project.lv2Class
但可用的是这样一类属性

 let available: Bool = true
希望它足够清楚,如果你有任何问题,请随时提问

我真的不熟悉JSON解析,谢谢大家的帮助。

答案是



您都需要将它们设置为
dynamic
,并确保您的所有属性都可以桥接到等效的Obj-C属性。

您好,我面临这个问题。我有“dynamic var allowPushNotifications:NSNumber=0”,在结果模型中我得到一个null。如果我把它改成字符串,我就得到了期望值。使用Mantle 2和Swift 1.2。谢谢
Assertion failure in -[MTLJSONAdapter initWithJSONDictionary:modelClass:error:], /Users/xx/Documents/Xcode/My_project/Pods/Mantle/Mantle/MTLJSONAdapter.m:149
2015-03-14 14:34:20.331 My_project[25794:711328] *** Caught exception available is not a property of My_project.lv2Class
 let available: Bool = true