JSON Stringify Arrays

时间:2017-10-10 11:54:34

标签: javascript arrays json multidimensional-array

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

Array.IndexOf

这是我的代码:

{"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"}
}

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

2 个答案:

答案 0 :(得分:0)

正如你所说的那样,它是一个数组,所以这应该有效:

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";

答案 1 :(得分:0)

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

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

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);

正如您所看到的,这看起来像 lot 就像您想要的输出一样。