Javascript 如何从json获取数据以将其保存在数据库中?
我是Javascript/jQuery的初学者,正在开发一个用KnockoutJS制作的界面,所以我有几个模型。我想保存数据库中的所有数据,但我不知道怎么做 我从以下几点开始:Javascript 如何从json获取数据以将其保存在数据库中?,javascript,ajax,json,knockout.js,Javascript,Ajax,Json,Knockout.js,我是Javascript/jQuery的初学者,正在开发一个用KnockoutJS制作的界面,所以我有几个模型。我想保存数据库中的所有数据,但我不知道怎么做 我从以下几点开始: self.save = function() { var data = ko.toJS(self); var test = ko.toJSON(self); console.log(test); } $.ajax({ url: "myUR
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获得carrier的价值,但我不知道如何获得其他数据,如DeiveryStandard、DeliveryExpress、fromPrice、maxPrice
你有主意了吗
提前谢谢你,如果我的问题很傻,请原谅 如果您使用缩进将JSON格式化为可读性更强的格式,则更容易理解: (尽管需要注意的是,在字符串格式中,它仅在技术上是JSON,除此之外,它只是一个标准javascript对象) 首先要注意的是,您有2个语法错误,上面用注释突出显示。所以先把它们修好!(虽然我想知道它们是否是打字错误,因为你似乎已经在你的工作端)
然后我们可以查看结构树,找出您想要的值的位置
DeiveryStandard
和DeliveryExpress
都是分配给price
的对象的属性,它是设置
数组中第一项的属性。因此,您可以像这样访问它们:
var DeliveryStandard = data.Settings[0].price.DeliveryStandard;
var DeliveryExpress= data.Settings[0].price.DeliveryExpress;
fromPrice
和maxPrice
在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]
用于第二个元素。如果您将JSON格式化为更可读的格式,并带有缩进,这使它更容易理解:
(尽管需要注意的是,在字符串格式中,它仅在技术上是JSON,除此之外,它只是一个标准javascript对象)
首先要注意的是,您有2个语法错误,上面用注释突出显示。所以先把它们修好!(虽然我想知道它们是否是打字错误,因为你似乎已经在你的工作端)
然后我们可以查看结构树,找出您想要的值的位置
DeiveryStandard
和DeliveryExpress
都是分配给price
的对象的属性,它是设置
数组中第一项的属性。因此,您可以像这样访问它们:
var DeliveryStandard = data.Settings[0].price.DeliveryStandard;
var DeliveryExpress= data.Settings[0].price.DeliveryExpress;
fromPrice
和maxPrice
在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]
用于第二个元素。如果您将JSON格式化为更可读的格式,并带有缩进,这使它更容易理解:
(尽管需要注意的是,在字符串格式中,它仅在技术上是JSON,除此之外,它只是一个标准javascript对象)
首先要注意的是,您有2个语法错误,上面用注释突出显示。所以先把它们修好!(虽然我想知道它们是否是打字错误,因为你似乎已经在你的工作端)
然后我们可以查看结构树,找出您想要的值的位置
DeiveryStandard
和DeliveryExpress
都是分配给price
的对象的属性,它是设置
数组中第一项的属性。因此,您可以像这样访问它们:
var DeliveryStandard = data.Settings[0].price.DeliveryStandard;
var DeliveryExpress= data.Settings[0].price.DeliveryExpress;
fromPrice
和maxPrice
在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]
用于第二个元素。如果您将JSON格式化为更可读的格式,并带有缩进,这使它更容易理解:
(尽管需要注意的是,在字符串格式中,它仅在技术上是JSON,除此之外,它只是一个标准javascript对象)
首先要注意的是,您有2个语法错误,上面用注释突出显示。所以先把它们修好!(虽然我想知道它们是否是打字错误,因为你似乎已经在你的工作端)
然后我们可以查看结构树,找出t的位置