需要帮助来JQUERY Ajax我的多维JSON



>我需要从Web服务器API获取JSON。 简短的故事 这是来自网络服务器的JSON结构:

[
{
"2017-07-28": [
{
"id": 1,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "50000",
"tanggal_efektif": "2017-07-28"
},
{
"id": 2,
"produk_id": 1,
"nama_id": 2,
"jumlah_user_id": 1,
"harga": "12112121",
"tanggal_efektif": "2017-07-28"
},
{
"id": 8,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "650000",
"tanggal_efektif": "2017-07-28"
}
],
"2017-07-14": [
{
"id": 4,
"produk_id": 1,
"nama_id": 2,
"jumlah_user_id": 2,
"harga": "121121",
"tanggal_efektif": "2017-07-14"
}
],
"2017-07-27": [
{
"id": 7,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "600000",
"tanggal_efektif": "2017-07-27"
}
]
}
]

这是我在客户端代码中编写的JQUERY AJAX:

function loadtabelharga(){
var page = event.target;
$.ajax({
type: "GET",
url: 'url'+page.data.id,
dataType: "JSON",
timeout: 10000,
success: function(result){
$.each(result[0], function (index,el) {
$('#prosesloadingharga').hide();
console.log("harga paket : " +el.harga+" , id harga paket : "+el.id);
});
},
error: function(xhr, textStatus, thrownError) {
console.log("error",xhr.error);
}
});
};

为什么它在我的控制台中显示为未定义.log ? 我认为与维度有关。谁能帮我? 这是一个新事物,我得到了一个像这样的 JSON 结构,我认为这是dates被调用而不是idharga像我想要的。

谢谢

这是一个可以帮助您理解的示例。您必须再使用一个循环来迭代内部循环。

var data = [
{
"2017-07-28": [
{
"id": 1,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "50000",
"tanggal_efektif": "2017-07-28"
},
{
"id": 2,
"produk_id": 1,
"nama_id": 2,
"jumlah_user_id": 1,
"harga": "12112121",
"tanggal_efektif": "2017-07-28"
},
{
"id": 8,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "650000",
"tanggal_efektif": "2017-07-28"
}
],
"2017-07-14": [
{
"id": 4,
"produk_id": 1,
"nama_id": 2,
"jumlah_user_id": 2,
"harga": "121121",
"tanggal_efektif": "2017-07-14"
}
],
"2017-07-27": [
{
"id": 7,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "600000",
"tanggal_efektif": "2017-07-27"
}
]
}
];
$.each(data[0], function(key, val) {
$.each(val, function(key1, val1) {
console.log(val1.harga);
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

试试这个:

for(var date in result[0]){
for(var obj in result[0][date] ){
var el = result[0][date][obj];
console.log("harga paket : " +el.harga+" , id harga paket : "+el.id);
}
}

在这里,您可以提供解决方案 https://jsfiddle.net/79vv97xv/

var data = [
{
"2017-07-28": [
{
"id": 1,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "50000",
"tanggal_efektif": "2017-07-28"
},
{
"id": 2,
"produk_id": 1,
"nama_id": 2,
"jumlah_user_id": 1,
"harga": "12112121",
"tanggal_efektif": "2017-07-28"
},
{
"id": 8,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "650000",
"tanggal_efektif": "2017-07-28"
}
],
"2017-07-14": [
{
"id": 4,
"produk_id": 1,
"nama_id": 2,
"jumlah_user_id": 2,
"harga": "121121",
"tanggal_efektif": "2017-07-14"
}
],
"2017-07-27": [
{
"id": 7,
"produk_id": 1,
"nama_id": 1,
"jumlah_user_id": 1,
"harga": "600000",
"tanggal_efektif": "2017-07-27"
}
]
}
];
for(var dates in data[0]){
	for(var key in data[0][dates]){
	console.log("Harga: ", data[0][dates][key].harga);
}
}

我认为你应该把多维数组放在一个普通对象中。

var your_stringify_obj=JSON.stringify(your_Multidimensional_Json).
$.ajax({
type: "GET",
url: 'url'+page.data.id,
dataType: "JSON",
data: your_stringify_obj,
timeout: 10000,
success: function(result){
$.each(result[0], function (index,el) {
$('#prosesloadingharga').hide();
console.log("harga paket : " +el.harga+" , id harga paket : "+el.id);
});
},
error: function(xhr, textStatus, thrownError) {
console.log("error",xhr.error);
}
});
};

现在它应该可以工作了。

最新更新