2017-10-10 216 views
0

我試圖字符串化陣列,以實現這一JSON:JSON字符串化陣列

{"fields":{"TITLE":"title text", 
"NAME":"name text", 
"EMAIL":[{"VALUE":"[email protected]","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數組以自動放置它們? 感謝

+0

設置默認JSON並相應地推送您的數據。 –

回答

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

正如你所看到的,這看起來很多像你期望的輸出了。

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

謝謝 - 這兩種解決方案都可以工作。 – JC957