【问题标题】:JSON Stringify ArraysJSON 字符串化数组
【发布时间】:2017-10-10 11:54:34
【问题描述】:

我正在尝试对数组进行字符串化以实现此 JSON:

{"fields":{"TITLE":"title text",
"NAME":"name text",
"EMAIL":[{"VALUE":"email@domain.com","VALUE_TYPE":"WORK"}],
"PHONE":[{"VALUE":"555-111-222", "VALUE_TYPE":"WORK"}],
"ASSIGNED_BY_ID":"10",
"SOURCE_ID":"WEB",
"STATUS_ID":"ASSIGNED",
"COMMENTS":"comments text"}
}

这是我的代码:

var Lead = {};
Lead.fields = {};
Lead.fields.TITLE = $("#name").val();
Lead.fields.NAME = $("#name").val();
Lead.fields.EMAIL = {};
Lead.fields.EMAIL.VALUE = $("#eml").val();
Lead.fields.EMAIL.VALUE_TYPE = "WORK";
Lead.fields.PHONE = {};
Lead.fields.PHONE.VALUE = $("#phone").val();
Lead.fields.PHONE.VALUE_TYPE = "WORK";
Lead.fields.ASSIGNED_BY_ID = "4";
Lead.fields.SOURCE_ID = "WEB";
Lead.fields.STATUS_ID =  "ASSIGNED";
Lead.fields.COMMENTS = "Finest Meetings Contact Form:" +$("#comment").val();
var DataParsed = JSON.stringify(Lead);

这实现了除了将电子邮件和电话元素包装在方括号中之外的所有内容,因此随后我发布到 REST API 的帖子失败了。显然,我可以手动在正确的位置手动构造 JSON 字符串,但是有没有更简单的方法来实例化 EMAIL 和 PHONE 数组以自动放入它们? 谢谢

【问题讨论】:

  • 制作默认 JSON 并相应地推送您的数据。

标签: javascript arrays json multidimensional-array


【解决方案1】:

我们可以大大简化这段代码。

只需像这样声明您的结构,而不是像您那样访问每个单独的属性:

var Lead = {
  fields: {
    TITLE: $("#name").val()
    NAME: $("#name").val(),
    EMAIL: [{ VALUE: $("#eml").val(), VALUE_TYPE: "WORK" }],
    PHONE: [{ VALUE: $("#phone").val(), VALUE_TYPE: "WORK" }],
    ASSIGNED_BY_ID: "4",
    SOURCE_ID: "WEB",
    STATUS_ID: "ASSIGNED",
    COMMENTS: "Finest Meetings Contact Form:" +$("#comment").val()
  }
};

var DataParsed = JSON.stringify(Lead);

如您所见,这看起来已经 很多 像您想要的输出了。

【讨论】:

    【解决方案2】:

    正如你自己所说,它是一个数组,所以这应该可以工作:

    Lead.fields.EMAIL = [{}];
    Lead.fields.EMAIL[0].VALUE = $("#eml").val();
    Lead.fields.EMAIL[0].VALUE_TYPE = "WORK";
    Lead.fields.PHONE = [{}];
    Lead.fields.PHONE[0].VALUE = $("#phone").val();
    Lead.fields.PHONE[0].VALUE_TYPE = "WORK";
    

    【讨论】:

      猜你喜欢
      • 2020-12-14
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      相关资源
      最近更新 更多