JavaScript JSON对象错误

JavaScript JSON对象错误,javascript,jquery,json,Javascript,Jquery,Json,我正试图从下面的数据中打印出键和值名称,例如“玩家1”-“球”“帽子”和“玩家2”-“球”“帽子”。所以键有多个值名,但我不确定如何打印这些值。**我得到了“[object]”作为响应**。请有人帮我理解这一点,并设法解决这一问题 数据 { "Player1": { "ball": 1, "hat": 2 }, "Player2": { "ball": 1, "hat": 2, } } JavaS

我正试图从下面的数据中打印出键和值名称,例如“玩家1”-“球”“帽子”和“玩家2”-“球”“帽子”。所以键有多个值名,但我不确定如何打印这些值。**我得到了“[object]”作为响应**。请有人帮我理解这一点,并设法解决这一问题

数据

{
    "Player1": {
        "ball": 1,
        "hat": 2

    },
    "Player2": {
        "ball": 1,
        "hat": 2,
    }
}
JavaScript

$.getJSON('data.json', function (data) {
    var response = data;
    for (key in response){
        alert("key: " + key + "value :" + response[key]);
    }
});
打印对象时使用
JSON.stringify(response[key])

$.getJSON('data.json', function (data) {
    var response = data;
    for (key in response){
        alert("key: " + key + "value :" + JSON.stringify(response[key]));
    }
});

或者使用
response[key].ball,response[key].hat

执行此操作的最简单方法是将结果合并到字符串中,如下所示:

for (key in response){
    alert("key: " + key + " value :" + Object.keys(response[key]).join(' '));
}
结果:

键:Player1值:球帽
键:Player2值:球帽


.

以下是打印对象内容的一种方法。方法用于访问玩家的“项目”,并以数组格式获取这些项目已更新

var响应={
“玩家1”:{
“球”:1,
“帽子”:2
},
“玩家2”:{
“球”:1,
“帽子”:2,
}
};
对于(玩家回应){
var items=Object.keys(响应[player]);
var itemText=“”;
对于(i=0;i}
JSON
stringify
功能在这里起到了解救作用。因为大多数内部函数都将数据参数作为字符串或缓冲区。 因此,您可以使用以下代码:-

    var response = {
    "Player1": {
        "ball": 1,
        "hat": 2

    },
    "Player2": {
        "ball": 1,
        "hat": 2,
    }
}

var dataString = JSON.stringify(response);

现在使用
dataString
发送和接收不同的呼叫

尝试使用
console.log(“key:,key,“value:,response[key])
;它将允许您查看对象,无论您是否将其字符串化。但我只需要值的属性名称,而不是值,例如仅“ball”、“hat”和not:{ball:1}etc@user2219097
response[key]
也是一个对象,因此可以为每个循环使用一个(
for(var k in response[key])
)循环并打印其键。如果需要引用每个值,应签出
.map()
,如下所示:
Object.keys(response[key]).map(函数(k){return'\''+k+'\''\';})。join('')@NickCraver谢谢你的提示!我以后一定会尝试使用.map()函数-看起来确实非常方便:-)