如何访问匿名JSON属性? [英] How to access an anonymous JSON attribute?

查看:99
本文介绍了如何访问匿名JSON属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下JSON:

{
    "Files": {
             "Lines": {
                    "198": {
                           "firstline": "sometext"
                    }
             }
    }
}

,值"198"是动态变化的.如何在不知道以下代码中的"198"的情况下轻松访问"firstline"属性:

and the value "198" is dynamic and changes. How can I access the "firstline" property easily without knowing "198" in the following code:

var schema = JSON.parse(fileContents); 
console.log(schema.Files.Lines.????.firstline);

推荐答案

只需几行:

var obj = JSON.parse(your_json);
var lines = obj.Files.Lines;
var keys = Object.keys(lines);
var keyICareAbout = keys[0];
var info  = lines[keyICareAbout];

注意:此解决方案依赖于一些较新的javascript功能.为了使JSON在所有浏览器中都能正常工作,您需要此处中的道格拉斯·克罗克福德(Douglas Crockford)的json2.js.为了使Object.keys在所有浏览器中都能正常工作,请使用 Mozilla的JS文档中的此填充程序:

Note: This solution relies on some newer javascript features. For JSON to work in all browsers, you will need Douglas Crockford's json2.js from here. For Object.keys to work in all browsers, use this shim from Mozilla's JS docuentation:

if(!Object.keys) Object.keys = function(o){
 if (o !== Object(o))
      throw new TypeError('Object.keys called on non-object');
 var ret=[],p;
 for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
 return ret;
}

尝试以下 jsfiddle .现在已更新为具有跨浏览器兼容性措施,并可以动态访问数据.

Try this jsfiddle. Now updated with cross browser compatability measures and accessing data dynamically.

这篇关于如何访问匿名JSON属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆