解析无效的JSON swift 5



我有一个来自外部api的无效json编译:

{
status: 'ok',
pills: [{
id: 1,
name: "Мезим форте",
img: "https://cloud.fdoctor.ru/test_task/static/mezim.jpg",
desription: "Перед завтраком",
dose: "По таблетке"
},
{
id: 2,
name: "Bioderma",
img: "https://cloud.fdoctor.ru/test_task/static/bioderma.jpg",
desription: "Во время еды"
dose: "По 3 глотка"
},
{
id: 3,
name: "Гексорал, Аэрозоль"
img: "https://cloud.fdoctor.ru/test_task/static/gecsoral.jpg",
desription: "При острых болях"
dose: "По 3 пшика"
},
{
id: 4,
name: "Тантум Верде, спрей"
img: "https://cloud.fdoctor.ru/test_task/static/tantum.jpg",
desription: "Каждые 4 часа в течении 7 дней"
dose: "По таблетке"
}
]
}

有没有一种方法可以用可编码协议来解析它?

在API上修复它不是一个选项。

您可以使用以下reg ex替换来清理字符串并使其符合json

//Surround keys with quotes
let firstStep = input.replacingOccurrences(of: #"s(w+):{1}"#, 
with: #""$1":"#, 
options: .regularExpression)
//Fix status value
let json = firstStep.replacingOccurrences(of: "'", with: """)

最新更新