从本地嵌套的JSON对象中检索数据
Retrieve data from a local nested JSON objects
我做了一个小的测试页面,看起来像这样:
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
<title>Get JSON Value</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<script>
var json = $.getJSON("../js/report.json", function(data)
{
var items = [];
$.each(data, function (key, value)
{
items.push(key + " " + value);
});
alert(items[3]);
});
</script>
</body>
</html>
它从本地服务器上存储的本地JSON文件中获取数据。
JSON对象看起来像这样:
{
"reportTitle": "Results",
"inlineAssets": false,
"stats": {
"suites": 7,
"tests": 13,
"passes": 11,
"pending": 0,
"failures": 2,
"start": "2016-08-11T13:30:48.362Z",
"end": "2016-08-11T13:31:29.433Z",
"duration": 41071,
...
}
alert(items[2]);
得到stats [object Object]
alert(items[3]);
给我suites [object Object]
我是否可以检索suites
, tests
和passes
的数量?因此,警报的输出将是suites 7
、tests 13
和passes 11
。
理想情况下,我希望将这些值存储在它们自己的变量中,而不仅仅是alert
或console.log
。
EDIT for david
输入图片描述
I've try:
console.log(items[2].suites);
=> undefined
您没有将数据push到items数组。这就是为什么你不能得到数据。试着做得更简单一些
var json = $.getJSON("../js/report.json", function(data) {
var stats = data.stats;
$.each(stats, function(key, val){
alert(key + " " + val)
});
});
仿真示例
这是一种检索suites
, tests
, passes
数量的方法。
查询suites
号=> items[3].stats.suites
号
查询tests
号=> items[3].stats.tests
号
查询passes
号=> items[3].stats.passes
号
将括号内的3
替换为您想要的索引号。
编辑
你可以忘记我上面的答案。这才是真正的答案。我已经修改了你的代码一点得到你想要的答案。
var items=[];
function recursive(data){
$.each(data, function (key, value)
{
if (value instanceof Object) {
recursive(value);
} else {
items.push(key + " " + value);
}
});
}
var json = $.getJSON("report.json", function(data)
{
recursive(data);
console.log(items[2]); // return 'suites 7'
console.log(items[3]); // return 'tests 13'
console.log(items[4]); // return 'passes 11'
});
由于对象中有一个对象,所以我必须使用递归来跟踪所有数据
相关文章:
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 更改json/javascript对象var名称或从数字var中检索值
- 如何从类关系中检索对象列表
- 无法使用ng repeat检索动态创建的JSON对象的属性
- 如何在Windows8Metrojavascript中将窗体的值检索到对象中
- 正在从JSON对象检索数据
- 只有当Angular从资源对象检索数据时,才选择选项元素
- 从 XML 对象检索数据
- 对从字典 JavaScript 对象检索的对象调用方法
- 如何从多个 JSON 响应对象检索数据
- Ajax调用工作正常,但php文件在从对象检索属性时出错
- 通过JSON数组对象检索多个值
- 从解析对象检索信息时,解析JavaScript返回[object,object]
- JQuery text();从解析对象检索信息时返回[object object]
- 使用wcf-Restful Service将json对象检索为querystring
- javascript通过使用正则表达式匹配键从JSON对象检索值
- 将现有对象检索到变量中
- 解码json对象检索从PHP在Javascript
- 使用子字符串从JSON对象检索数据
- 使用传单从json文件加载圆坐标/使用从圆对象检索的数据