2016-12-13 72 views
-1

我有一個高級表單。我需要從基本的html頁面表單發送給我的restapi。
我的表單由基本字段組成,例如。名稱,ID等。
我也有一個對象列表。
我的問題來了,當我需要在我的對象內的對象。
例如。 jsonString對象,它是動態的,可以包含多個字段。複雜的html表單到json對象

<input type="text" name="jsonString.field1" value="123"> 
<input type="text" name="jsonString.field2" value="qwe"> 
<input type="text" name="jsonString.fieldN" value="..."> 

我要的是:

{ 
id: 411421, 
name: asdojasfjo, 
alotOfRandomFields: "Random", 
"jsonString": { 
    field1: "123", 
    field2: "qwe", 
    fieldN: "..." }, 
numbers: [1,2,3,4] 
} 

我jsonString對象字段名稱可能不同,並如。 「Petname」,petage,petOwnerName和其他形式。 「工作名稱」和「工資」。

我知道,如果我救他們都具有相同的名字,我得到一個數組,但我不能看到字段名稱,這是需要在未來比較包含寵物的所有文件。

目前我使用jQuery的:

form.serialize(); 

任何意見或指針?

+0

我真的不明白爲什麼人們downvote問題沒有給予反饋,爲什麼他們downvote ... – Kiksen

回答

0

我已經解決了我的問題。不太喜歡它被解決的方式。因此,如果任何人有一個更好的主意,請分享:)

function ConvertFormToJSON(form){ 
    var array = jQuery(form).serializeArray(); 
    var json = {jsonString:{}}; 
    var substring = "jsonString"; 
    jQuery.each(array, function() { 
     if(this.name.indexOf(substring) !== -1){ 
      json["jsonString"][this.name.substring(10)] = this.value; 
     } 
     else{ 
      json[this.name] = this.value || ''; 
     } 

    }); 

    return json; 
}