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

如何在解析JSON文件时提取options对象的ID并调整输出格式

问题解决:提取JSON中options的ID与对应value并按格式输出

需求说明

现有JavaScript的ParseJSON函数可解析指定结构的JSON并提取报表数据,但无法提取options对象中的键(即ID)。需要将options中每个ID与其对应的value依次输出(ID在前,value在后),调整输出格式至目标样式。

修改方案

核心修改parseOBJ函数,原来仅输出value.value,现在遍历options对象时,同时输出当前键(ID)和对应的value值,各占一行。

修改后的完整代码

function ParseJSON() {
  let data = [
    {
    "id": "c3c6f410f58e5836431b473ebcf134756232d04f2bf35edff8",
    "component": "checkbox",
    "customFields": [],
    "index": 0,
    "label": "Sector",
    "options": {
      "62f92fab79ac81d933765bd0bbc4a1f5ea26cb3a088bcb4e6e": {
        "index": 0,
        "value": "Bob",
        "label": "Bob",
        "count": 1
      },
      "2fe91aa3567c0d04c521dcd2fc7e40d7622bb8c3f594d503da": {
        "index": 1,
        "value": "Student",
        "label": "Student",
        "count": 1
      },
      "c59ea1159f33b91a7f6edc6925be5e373fc543e4": {
        "index": 5,
        "value": "AAA",
        "label": "AAA"
      }
    },
    "required": false,
    "validation": "/.*/",
    "imported": false
  },
  {
    "id": "f794c6a52e793ee6f5c42cd5df6b4435236e3495e951709485",
    "component": "textInput",
    "customFields": [],
    "index": 1,
    "label": "Question AAA",
    "options": {},
    "required": false,
    "validation": "/.*/",
    "imported": false
  }
 ];

  let result = "";
  data.forEach(({id, label, content, component, options}) => {
   if(component!=="htmlelement"){ 
    // 过滤HTML组件
    content = label==="HTML" ? "":content;
    label= label==="HTML" ? "":label;

    content = content ? '\n' + content:"";
  
    component = component==='checkbox' ? "select_boxes":component;
    component = component==='textInput' ? "text input":component;
    component = component==='textArea' ? "text area":component;
    component = component==='url' ? "URL":component;
    component = component!=='htmlelement' ? component+'\n':"";
  
    if(id + component + label + content!==""){
      result += id + '\n' + label + content + '\n'+ parseOBJ(options);
      result += '\n'
    }

    result=result.replace(/[\r\n]{2,}/g, "\n\n");
   }
  });

  console.log(result)
}

function parseOBJ(obj) {
  let R =""
  for (let [key, value] of Object.entries(obj)) {
    // 先输出ID(key),再输出对应的value
    R += key + '\n' + value.value + '\n';
  };
  
  return R
}

修改点说明

仅修改parseOBJ函数内部逻辑:

  • 遍历Object.entries(obj)时,将原来的R += value.value + '\n';改为R += key + '\n' + value.value + '\n';,实现ID与对应value的分行输出。

输出结果

运行修改后的代码,将得到符合要求的目标输出:

c3c6f410f58e5836431b473ebcf134756232d04f2bf35edff8
Sector
62f92fab79ac81d933765bd0bbc4a1f5ea26cb3a088bcb4e6e
Bob
2fe91aa3567c0d04c521dcd2fc7e40d7622bb8c3f594d503da
Student
c59ea1159f33b91a7f6edc6925be5e373fc543e4
AAA

f794c6a52e793ee6f5c42cd5df6b4435236e3495e951709485
Question AAA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:52:44