You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何将Encoded String正确转换为目标JSON数组

JSON编码字符串转标准数组实现方法

你之前转换失败的核心原因是没有先清理原始字符串的多余包裹、没有替换转义字符,直接手动转字典时丢失了值的引号包裹,最终得到非标准的结构。

操作步骤

1. 预处理原始编码字符串,得到合法JSON

原始输入外层带有冗余的括号和转义引号,先做字符串清理:

  • 删除开头的("和结尾的")包裹字符
  • 将所有HTML转义的引号"替换为标准JSON使用的双引号"
    清理完成后得到的合法JSON字符串如下:
[
  {"carMake":"Mercedes","phone":"03001234567","insurancePolicyNo":"0123456","email":"a@g.com","full_name":"Steven Fin","registrationNo":"02134","insuranceProvider":"Michael","carModel":"Benz"},
  {"carMake":"Audi","phone":"03007654321","insurancePolicyNo":"654321","email":"b@g.com","full_name":"Flemming Smith","registrationNo":"4325","insuranceProvider":"Buttler","carModel":"A3"}
]

2. 用内置JSON解析器直接反序列化

不要手动转换字典,直接使用编程语言内置的JSON解析能力处理上面的合法字符串,就能直接得到目标结构。

JavaScript 实现示例

const rawEncodedStr = `("[{"carMake":"Mercedes","phone":"03001234567","insurancePolicyNo":"0123456","email":"a@g.com","full_name":"Steven Fin","registrationNo":"02134","insuranceProvider":"Michael","carModel":"Benz"}, {"carMake":"Audi","phone":"03007654321","insurancePolicyNo":"654321","email":"b@g.com","full_name":"Flemming Smith","registrationNo":"4325","insuranceProvider":"Buttler","carModel":"A3"}]")`
// 字符串清理
const validJson = rawEncodedStr
  .replace(/^\("/, '')
  .replace(/"\)$/, '')
  .replaceAll('"', '"')
// 直接解析得到目标数组
const result = JSON.parse(validJson)

Swift 实现提示(从你输出的字典格式判断你可能使用Swift)

  • 按上述规则清理完字符串后,将字符串转为Data实例
  • 直接用JSONDecoder解码为对应结构的模型数组即可,不要手动拼接Dictionary,避免丢失字段类型和字符串引号

常见问题说明

你之前得到的无引号字典结构,是手动转换时丢失了字符串类型的包裹标记,本质是控制台打印的非结构化内容,不是合法的可序列化对象。只要预处理后的字符串符合JSON语法规范,所有语言的标准JSON库都能直接输出你需要的数组结构,不需要手动遍历重组字段。

内容的提问来源于stack exchange,提问作者Taimoor Arif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:45:33