【问题标题】:How to edit JSON array after encoded编码后如何编辑JSON数组
【发布时间】:2014-12-12 11:00:00
【问题描述】:

在将 JSON 数组编码为 JSON 后如何编辑它?

我想编辑以下 JSON 数组:

{"Status":"OK","Message":"API Call worked","Result":[{"interval":"2014-11-30",
"leads":0,"name":"CarEnquiry","status":"NEW","appointment":0},
{"interval":"2014-11-30","leads":0,"name":"CarEnquiry","status":"CALL1","appointment":0},
{"interval":"2014-11-30","leads":0,"name":"CarEnquiry","status":"CALL2","appointment":0}]}

改成这个

{"Result":"OK","Records":[{"interval":"2014-11-30",
"leads":0,"name":"CarEnquiry","status":"NEW","appointment":0},
{"interval":"2014-11-30","leads":0,"name":"CarEnquiry","status":"CALL1","appointment":0},
{"interval":"2014-11-30","leads":0,"name":"CarEnquiry","status":"CALL2","appointment":0}]}

如何在 Javascript 中编辑数组?

【问题讨论】:

  • 请问您为什么需要这样做;为什么在生成原始数组时无法执行此操作;以及这个 JSON 是如何生成的?
  • 描述有什么区别。
  • 也许仅仅 3000 万次关于操作 javascript 对象的培训会有所帮助(这很容易)。
  • @KavehRassoulzadegan - 我用谷歌搜索,找不到任何相关内容。
  • @JamesDonnelly - 数组的编码由一个为所有 JSON 对象生成相同格式的整体 API 控制器完成 - 即 "Status":"OK","Message":"API Call worked","Result":[。我正在使用一个第三方库,它期望起始行是{"Result":"OK","Records":[。所以只是做一个解决方法。

标签: javascript arrays json


【解决方案1】:

如果你真的想用 JavaScript 来做这件事,你可以简单地创建一个新的 JavaScript 对象(我在下面称之为newJSON),然后手动将它的属性分配为你的属性当前的 JSON(我称之为 oldJSON):

var oldJSON = ...,
    newJSON = {};

newJSON.Result = oldJSON.Status;
newJSON.Records = oldJSON.Result;

newJSON 现在是您想要的格式的 JavaScript 对象。如果我们为此调用JSON.stringify,我们会看到结果。在下面的 sn-p 上单击 Run code sn-p 以将字符串化结果提醒您。

var oldJSON = {"Status":"OK","Message":"API Call worked","Result":[{"interval":"2014-11-30","leads":0,"name":"CarEnquiry","status":"NEW","appointment":0},{"interval":"2014-11-30","leads":0,"name":"CarEnquiry","status":"CALL1","appointment":0},{"interval":"2014-11-30","leads":0,"name":"CarEnquiry","status":"CALL2","appointment":0}]},
    newJSON = {};

newJSON.Result = oldJSON.Status;
newJSON.Records = oldJSON.Result;

alert(JSON.stringify(newJSON));

【讨论】:

  • 完美——正是我所需要的!谢谢
【解决方案2】:
x['Records']=x.Result;
x['Result']=x.Status;

如果您不介意 json 中的一些额外键,那么您不需要删除它们,否则如果您想删除它们,请检查这些问题 here。希望对您有所帮助。

【讨论】:

    【解决方案3】:

    也许您可以尝试修改和/或删除 json 键。

    我会这样做:

    var json = '
        {"Status":"OK",
         "Message":"API Call worked",
         "Result": [
            {"interval":"2014-11-30", "leads":0,"name":"CarEnquiry","status":"NEW","appointment":0},
            {"interval":"2014-11-30", "leads":0,"name":"CarEnquiry","status":"CALL1","appointment":0},
            {"interval":"2014-11-30", "leads":0,"name":"CarEnquiry","status":"CALL2","appointment":0}]}
    ';
    
    var obj = JSON.parse(json);
    
    obj.Records = obj.Result;
    delete obj.Result;
    
    obj.Result = obj.Status;
    delete obj.Status;
    
    delete obj.Message;
    
    json = JSON.stringify([obj]);
    

    您将获得:

    {"Records": [
         {"interval":"2014-11-30", "leads":0,"name":"CarEnquiry","status":"NEW","appointment":0},
         {"interval":"2014-11-30", "leads":0,"name":"CarEnquiry","status":"CALL1","appointment":0},
         {"interval":"2014-11-30", "leads":0,"name":"CarEnquiry","status":"CALL2","appointment":0}
       ],
     "Result":"OK"
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2019-07-19
      相关资源
      最近更新 更多