我有一些JSON,我已经专门为这个问题设置了一个变量。
这是我的json:
{"json":{"-K-dxZZVLv4N11BQ-tEJ":{"AssetID":1},"-K-dxwm5y1hVS68GyMhN":{"AssetID":2}}}
以下是我的尝试:
var url = "https://rbxjson.firebaseio.com/catalog.json";
var recent;
$.getJSON(url, function (json) {
recent = Object.keys(json["json"])[0]["AssetID"];
alert(recent);
});
我试图访问" AssetID"的值in" {" AssetID":1}"但是我尝试了上面的代码而且它没有用。
答案 0 :(得分:0)
这是一个非常奇怪的结构,因为键看起来很像变量。但是,您可以通过以下方式访问它们(您与Object.keys
非常接近):
var json = {"json":{"-K-dxZZVLv4N11BQ-tEJ":{"AssetID":1},"-K-dxwm5y1hVS68GyMhN":{"AssetID":2}}};
Object.keys(json.json).forEach(function(name) {
snippet.log(name + ": " + json.json[name].AssetID);
});

<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
我在那里显示了一个循环,因为你正在处理一个对象,而不是一个数组。传统上,JavaScript对象没有对其属性的命令(虽然在ECMAScript 2015中有所改变),即使ECMAScript 2015改变了这一点,我也不会想到 JSON (你的格式)在电线上使用)有任何物业订单。
答案 1 :(得分:0)
Object.keys()
返回字符串键列表。
那些,实际上并不是对象的一部分,而只是名称。
其次,请注意您在对象中有一个对象。要访问子对象,请将json
复制到json.json
。
要访问该密钥中的内容,请使用json[key]
,这样:
var url = "https://rbxjson.firebaseio.com/catalog.json";
var recent;
$.getJSON(url, function (json) {
var key = Object.keys(json.json)[0]
recent = json.json[key]["AssetID"];
alert(recent);
});
要查找最后一项资产,请继续使用:
// ...
$.getJSON(url, function (json) {
var keys = Object.keys(json.json);
var key = keys[keys.length - 1];
//...
});
旁注,您可能希望将json
重命名为res
或result
,从而使结构更加直观:result.json
,如下所示:
$.getJSON(url, function (res) {
var key = Object.keys(res.json)[0]
recent = res.json[key]["AssetID"];
alert(recent);
});