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

Swift中如何解析字符串数量未知的JSON字符串数组

动态键名不确定结构JSON解析方法

这类动态生成键名、字段数量不固定的JSON,不需要提前枚举所有可能的键名,核心思路是先解析固定结构,再遍历动态键取值,具体操作如下:

通用处理流程

  • 先按静态解析的方式处理固定存在的键:首先解析外层结构,拿到index数组中的目标对象,固定键numberOfString可以直接读取,用来校验后续拿到的动态字符串数量是否匹配
  • 遍历目标对象的所有键值对,跳过固定的numberOfString字段,其余符合stringX命名规则的键直接取值即可,不需要提前知道N的具体数值
  • 如果需要保证字符串顺序和序号一致,可以提取键名中string后的数字,按数字排序后整理结果

常见语言实现示例

JavaScript

const data = JSON.parse(rawJsonStr);
const target = data.index[0];
const res = [];
for (const key in target) {
  if (Object.hasOwn(target, key) && key.startsWith('string')) {
    const order = Number(key.slice(6)); // 截取string后的数字
    res[order - 1] = target[key];
  }
}
// res就是按string1到stringN顺序排列的结果数组

Python

import json
data = json.loads(raw_json_str)
target = data["index"][0]
res = [None] * int(target["numberOfString"])
for key, val in target.items():
    if key.startswith("string"):
        order = int(key[6:])
        res[order - 1] = val
# res为按序排列的所有字符串结果

提示:你给出的示例JSON存在语法错误,"numberOfString":"N"行末尾缺少逗号,解析前需要先修正JSON格式,否则会触发解析报错。

内容的提问来源于stack exchange,提问作者Emanuele Mele

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:57:10