解析JSON时,Xcode在运行时突然退出

时间:2018-03-23 08:16:05

标签: ios arrays json swift xcode

我正在尝试使用struct解析JSON:

这是JSON看起来很相似(SEAT上的对象值超过100):

{
    "Message": "Success",
    "Status": 200,
    "data": {
        "SEATS": [          
            {
                "SEAT_LOC_NO": "01404301",                  
                "ROW_NM": "A",                  
                "SEAT_NO": 1
            },
            {
                "SEAT_LOC_NO": "01404401",                  
                "ROW_NM": "A",                  
                "SEAT_NO": 2
            }
        ],
        "SEATCOUNT": {
            "COL_CNT": 42,              
            "ROW_CNT": 12,
        }
    }
}

我的结构就像:

struct Response : Codable {
  var data : datas?
  var Message : String?
  var Status : Int64?
}

struct datas : Codable {
  var SEATS : [SEATS]?
  var SEATCOUNT : SEATINFO?
}

struct SEATS : Codable {
  var SEAT_LOC_NO : String?
  var ROW_NM : String?
  var SEAT_NO : String?
}

struct SEATINFO : Codable {
  var COL_CNT : Int64?
  var ROW_CNT : Int64?
}

这是解析的过程:

var getSeat = Response()
getSeat = try? JSONDecoder().decode(Response.self, from: json) as Response

尝试运行此进度时xcode退出,jsonData类型,已在API服务中调用。

我一直在尝试删除派生数据,删除xcodeproject中的一些数据,重新启动xcode和OS。但是这个问题仍然存在。我想知道为什么但只有这个过程xcode突然退出而其他进程很好(不同的数据要解析)。

我正在使用最新的XCODE版本。

是一个错误,解析失败还是其他什么?

2 个答案:

答案 0 :(得分:1)

您的"SEAT_NO"键是整数值。您在struct中将其声明为String?

var SEAT_NO : String?更改为var SEAT_NO : Int?或将"SEAT_NO"键更改为字符串

如果有更多问题尝试捕捉错误

do {
    getSeat = try JSONDecoder().decode(Response.self, from: data)
} catch {
    print(error)
}

答案 1 :(得分:0)

@Vanillatte请先检查你的JSON它无效请删除额外的分号座位数词典。并尝试在解析响应期间使用错误处理。

enter image description here