Javascript 如何从json获取数据以将其保存在数据库中?

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

我是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获得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的位置