我在使用javascript构建对象时遇到问题。我想要这个:
{
"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 :(得分: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]});
}
你忘了你的{}周围&#34; ip_id&#34;:等...
您还需要声明ip_list是一个数组。
您的ip_list
是一个对象数组。我猜你的脚本没有按原样运行。
发布到您的服务器,您应该使用:
$http.post('server:port/api/v1/tags', secTagJSON).sucess(...
答案 1 :(得分: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(字符串)。
希望我能帮到你。