2014-03-27 33 views
0

我在使用javascript構建對象時遇到了問題。我想這一點:使用javascript構建json對象

{ 
    "p_id": "2", 
    "p_name": "weblogic", 
    "ip_list": [ 
     { 
      "ip_id": 2690 
     }, 
     { 
      "ip_id": 2692 
     }, 
     { 
      "ip_id": 2693 
     } 
    ] 
} 

下面是我使用的數據進入對象的JavaScript代碼:

var ipArray = []; 
secTagJSON.p_name = "weblogic"; 
secTagJSON.p_id = "2"; 
for (var index=0; index < selectedArray.length; index++){ 
    secTagJSON.ip_list.push("ip_id": selectedArray[index]); 
} 

我能夠構建的p_id和p_name的特性,但奮力打造在ip_list。請讓我知道如何使用JavaScript構建這個。

代碼發送到服務器:

var ipArray = []; 
secTagJSON.p_name = "weblogic"; 
secTagJSON.p_id = 2; 
for (var index=0; index < selectedArray.length; index++){ 
secTagJSON.ip_list.push({"ip_id": selectedArray[index]}); 
} 
console.log (secTagJSON); 
console.log (JSON.stringify(secTagJSON)); 
$http.post("http://server:port/api/v1/tags"). 
    success(function(data) { 
     console.log (data) 
    }); 
+0

你剛剛發佈的是使用Javascript構建它的有效方法。 – Paulpro

+0

嗯。你構建的意思是什麼? ...因爲我懷疑你的文字有什麼錯誤 – SergeS

+1

你是如何創建json的? – DontVoteMeDown

回答

1

嘗試:

secTagJSON.p_name = "weblogic"; 
secTagJSON.p_id = "2"; 
secTagJSON.ip_list = []; 
for (var index=0; index < selectedArray.length; index++){ 
secTagJSON.ip_list.push({"ip_id": selectedArray[index]}); 
} 

您忘記您的{}圍繞 「ip_id」:等... 您還需要聲明的是ip_list是數組。 您的ip_list是一組對象。我猜你的腳本沒有運行。

發佈到你的服務器,你應該使用:

$http.post('server:port/api/v1/tags', secTagJSON).sucess(...

+0

謝謝。它工作,但當我試圖張貼JSON我得到415錯誤 - 415(不支持的媒體類型)。你能讓我知道我要去哪裏嗎? – Pradeep

+0

你打算如何發佈它?讓我看看代碼 – bluetoft

+0

我已經添加了代碼發佈到我的問題中的服務器。我正在使用AngularJs進行http post調用。 – Pradeep

1

只要做到這一點:

var obj = { ip_list: [] }; 

obj.p_name = "weblogic"; 
obj.p_id = "2"; 

for (var i = 0, j = selectedArray.length; i < j; i++) 
    obj.ip_list.push({ ip_id: selectedArray[i] }); 

請注意,您ip_list實際上是對象的數組。因此,當您迭代它時,請記住每個var item = json.ip_list[i]都會返回一個對象,您可以使用以下方式訪問其屬性:item['ip_id']

請注意,obj是一個JavaScript對象,它不是JSON。如果你想要JSON,你可以使用JSON.stringify(obj)。這將返回你的JSON(字符串)。

希望我幫了忙。

+0

是的,我現在正在工作,但是當我嘗試將json發佈到服務器時,我得到415(不支持的媒體類型)錯誤。我知道我缺少什麼? – Pradeep

+0

你是如何發送它的?你設置了contentType嗎?如果你這樣做了,你的服務器是否需要JSON格式?我編輯了我的回答,告訴你如果你想發送JSON,你需要序列化您的JavaScript對象。 –