在不知道itemname的情况下获取Json中的子项目
Get child item in Json without knowing the itemname
我有一个这样的答案:
{
"url": "https://api.github.com/gists/47d8d5c3e80bc1568bda",
"forks_url": "https://api.github.com/gists/47d8d5c3e80bc1568bda/forks",
"commits_url": "https://api.github.com/gists/47d8d5c3e80bc1568bda/commits",
"id": "47d8d5c3e80bc1568bda",
"git_pull_url": "https://gist.github.com/47d8d5c3e80bc1568bda.git",
"git_push_url": "https://gist.github.com/47d8d5c3e80bc1568bda.git",
"html_url": "https://gist.github.com/47d8d5c3e80bc1568bda",
"files": {
"fileWhatever": {
"filename": "fileWhatever",
"type": "text/plain",
"language": null,
"raw_url": "https://gist.githubusercontent.com/test/47d8d5c3e80bc1568bda/raw/21aefad8f2f7aea0556360ff3a40a557b793e330/fileWhatever",
"size": 19,
"truncated": false,
"content": "this is the content"
}
}
....
问题是我想取"content"的值。我可以这样做:
data.files.fileWhatever.content
但是我不应该知道文件的名称,所以'fileWhatever'可以是任何东西。我如何跳过一个级别来获得任何文件的内容?
我用javascript
谢谢
我认为一个解决方案——尽管可能不是一个优雅的解决方案——是在任意深度遍历键。
也就是- pseudo应该是-
find-value-by-key(key-name, json):
for(key:json)
if key==key-name
return content of key
else if key has children
find-key(key-name, json.key-name)
应该有一些技术方法来提取
可能有更好的方法,但是:
var thefilename = "";
var thetype = "";
//etc...
for(var n in a.files)
{
for(var fn in a.files[n])
{
if(fn=="filename")
thefilename=a.files[n][fn];
if(fn=="type")
thetype=a.files[n][fn];
}
}
document.write("<div>" + thefilename + "</div>");
document.write("<div>" + thetype + "</div>");
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- 区分JSON中的矩阵和列表列表
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 如何为json对象中的段发送array[]
- 根据id将json数组组合为一个json数组
- Json数据包含日期和时间格式
- AngularJS-在JSON选择器中使用变量名
- 在不知道itemname的情况下获取Json中的子项目