iOS Error Domain=NSCocoaErrorDomain Code=3840 разбор строки json со знаком равенства (=)

При разборе строки json

«{timeInterval=60, stepList=[0, 0, 0, 186, 1928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0 , 0, 0, 0]}”

Ошибка: первый символ должен быть строкой ключа

Error Domain=NSCocoaErrorDomain Code=3840 «Нет строкового ключа для значения в объекте вокруг символа 1». UserInfo={NSDebugDescription=Нет строкового ключа для значения в объекте вокруг символа 1.}

причина

Строка не является стандартной строкой json, стандартная строка должна выглядеть следующим образом.

 "{\"timeInterval\":60, \"stepList\":[0, 0, 0, 186, 1928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0]}"

Разобрать строку json со знаком равенства (=)

class C1StepModel:Decodable {
    
    
    var timeInterval:Int = 60
    var stepList:[Int] = [1,2]
    
}

    var jsonStr = "{timeInterval=60, stepList=[0, 0, 0, 186, 1928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0]}"
    jsonStr = jsonStr.replacingOccurrences(of: "=", with: ":")
    jsonStr = jsonStr.replacingOccurrences(of: "timeInterval", with: "\"timeInterval\"")
    jsonStr = jsonStr.replacingOccurrences(of: "stepList", with: "\"stepList\"")

    let data:Data = jsonStr.data(using: .utf8)!
    let model = try! JSONDecoder().decode(C1StepModel.self, from: data)

Guess you like

Origin blog.csdn.net/baidu_40537062/article/details/130575311