需要帮助JQUERY Ajax我的Multidimensional JSON

时间:2017-08-01 10:23:24

标签: javascript jquery json ajax

我需要从网络服务器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);
        }
    });
};

为什么它在我的console.log中未定义?我认为这与尺寸有关。谁能帮我 ? 这是一个新的东西,我得到了这样的json结构,我认为dates被调用的不是idharga就像我想要的那样。

由于

4 个答案:

答案 0 :(得分:1)

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

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>

答案 1 :(得分:1)

试试这个:

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);
    }
}

答案 2 :(得分:1)

您可以使用解决方案https://jsfiddle.net/79vv97xv/

&#13;
&#13;
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);
  }
}
&#13;
&#13;
&#13;

答案 3 :(得分:0)

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

import maya.cmds as cmds

sel = cmds.ls(selection = True)
loc = cmds.spaceLocator()
cmds.parent(loc, sel)
cmds.setAttr(loc, "translateX", 0)

现在它应该工作了。