我是Javascript / jQuery的初学者,我正在研究用KnockoutJS制作的界面,所以我有几个模型。我想保存数据库中的所有数据,但我不知道该怎么做。
我开始时:
self.save = function() {
var data = ko.toJS(self);
var test = ko.toJSON(self);
console.log(test);
}
$.ajax({
url: "myURL",
data: {'carrier': data.carrier},
type: "POST",
});
这是console.log:
的结果 {"id":1,"carrier":"1","Settings":[{"id":1,"price":{"id":1,"DeliveryStandard":"3.00","DeliveryExpress":"6.00","Details":{"id":1,"Standard":[{"id":1,"fromPrice":0,"maxPrice":"45.000"}],"Express"[{"id":1,"fromPrice":0,"maxPrice":"66.000"}]}}}}]}
我可以通过使用data.carrier来获取运营商的价值,但我不知道如何获取其他数据,如DeiveryStandard,DeliveryExpress,fromPrice,maxPrice ......
你有个主意吗?
提前谢谢你,如果我的问题很愚蠢,那就很抱歉!
答案 0 :(得分:3)
如果您将JSON格式化为更易读的格式,并且使用缩进,则可以更容易理解:
(虽然应该注意到它只是技术上的JSON,而在字符串格式中,除此之外它只是一个标准的javascript对象)
{
"id":1,
"carrier":"1",
"Settings":[
{
"id":1,
"price": { "id":1,
"DeliveryStandard":"3.00",
"DeliveryExpress":"6.00",
"Details": { "id":1,
"Standard": [{"id":1,
"fromPrice":0,
"maxPrice":"45.000"
}],
"Express" //Missing semi-colon
[{"id":1,
"fromPrice":0,
"maxPrice":"66.000"
}]
}
}
}}//One too many closing braces
]
}
首先要注意的是,您有2个语法错误,上面带有注释。所以先修复它们! (虽然我不知道它们是否是拼写错误,因为你似乎在它的最后工作)
然后我们可以查看结构树来找出你想要的值的位置......
DeiveryStandard
和DeliveryExpress
都是分配给price
的对象的属性,它是Settings
数组中第一项的属性。所以你可以这样访问它们:
var DeliveryStandard = data.Settings[0].price.DeliveryStandard;
var DeliveryExpress= data.Settings[0].price.DeliveryExpress;
在fromPrice
和maxPrice
个项目中多次找到{p> Standard
和Express
。所以你需要决定你需要什么版本。如果您需要Standard
,那么您可以像这样获取Standard
数组的第一项:
var standardObject = data.Settings[0].price.Details.Standard[0];
然后您可以访问类似的属性:
var fromPrice = standardObject.fromPrice;
var maxPrice = standardObject.maxPrice;
我相信您可以了解如何获取相同数据的Express
版本!
从您似乎已经能够自己解决的问题来看,我认为您的问题不知道如何处理数组。请注意,数组使用方括号[]
定义,并且应使用从零开始的索引访问数组中的元素,例如:第一个元素为array[0]
,而array[1]
为第二个元素。
答案 1 :(得分:0)
这应该有用。
console.log(data.Settings[0].price.DeliveryStandard);
答案 2 :(得分:0)
修正了JSON中的一些错误。
var j = {
"id" : 1,
"carrier" : "1",
"Settings" : [{
"id" : 1,
"price" : {
"id" : 1,
"DeliveryStandard" : "3.00",
"DeliveryExpress" : "6.00",
"Details" : {
"id" : 1,
"Standard" : [
{
"id" : 1,
"fromPrice" : 0,
"maxPrice" : "45.000"
}
],
"Express": [
{
"id" : 1,
"fromPrice" : 0,
"maxPrice" : "66.000"
}
]
}
}
}
]
};
alert(j.Settings[0].price.DeliveryStandard);
alert(j.Settings[0].price.DeliveryExpress);
alert(j.Settings[0].price.Details.Standard[0].fromPrice);
alert(j.Settings[0].price.Details.Standard[0].maxPrice);