从 JSON 中获取键名和值名并在 Highcharts 中使用
Posted
技术标签:
【中文标题】从 JSON 中获取键名和值名并在 Highcharts 中使用【英文标题】:Get Key names and Values names from JSON and use in Highcharts 【发布时间】:2020-07-14 14:21:56 【问题描述】:我有一个结构如下的 JSON 文件:
JSON 结构:
[
"id": 1536700,
"title": "final_output",
"error": "",
"data": [
"metric": 4940616.0,
"title": "d_revenue"
,
"metric": 5132162.0,
"title": "p_revenue"
,
"metric": 4954576.0,
"title": "s_revenue"
,
"metric": 4882217.0,
"title": "u_revenue"
,
"metric": 4869609.0,
"title": "t_revenue"
,
"metric": 5075422.0,
"title": "w_revenue"
,
"metric": 4461996.0,
"title": "v_revenue"
]
]
下一个结构:
[
"run_id": 1536700,
"code_title": "select_data",
"error": "",
"data": [
"user_name": "C_51",
"num1": 51,
"num2": 101,
"num3": 151
,
"user_name": "H_51",
"num1": 51,
"num2": 101,
"num3": 151
,
"user_name": "C_52",
"num1": 52,
"num2": 102,
"num3": 152
,
"user_name": "H_52",
"num1": 52,
"num2": 102,
"num3": 152
,
"user_name": "C_53",
"num1": 53,
"num2": 103,
"num3": 153
]
]
我想得到data
中的键,然后决定x 轴是什么,y 轴是什么,我想做类似http://jsfiddle.net/k32a59vL/1/ 的事情。
这是我的代码:
$.getJSON(api, function(elem)
console.log(elem);
elem.forEach(d =>
);
);
console.log(elem)
给了我上面提到的 json 结构。我如何从第一个结构中获取metric and title
和user_name, num1, num2, num3
。我如何获得这些值?
【问题讨论】:
不清楚您想要实现什么。请清楚地说明问题是什么,输入是什么以及预期的输出是什么...... @Supercool。 ,数据是我的输入,它可以不同。我只想能够获得公共密钥。例如,对于第一个 json 结构,我想获取metric, title
,第二个我想返回 user_name, num1, num2, num3
是这个还是你有什么其他问题??
和内部数据数组 ....对象是否包含不同的键或相同的键,例如一个对象具有 key1,key2,key3 ,同一数组中的其他对象仅具有 key1,key2 ...确实这符合你的情况吗?
@Supercool。 ,在每个json结构里面,里面的数据,都是一样的。我想得到这些并最终在 highcharts 中使用这些值
【参考方案1】:
使用 Object.keys(yourObject) 获取密钥
$.getJSON(api, function(elem)
let keys=elem.map( structure => Object.keys(structure.data[0]))
);
运行下面的 sn-p 来检查它是否有效
let ele= ["id": 1536700,"title": "final_output","error": "",
"data": ["metric": 4940616.0,"title": "d_revenue","metric": 5132162.0,"title": "p_revenue","metric":4954576.0,"title": "s_revenue","metric": 4882217.0,"title":"u_revenue","metric": 4869609.0,"title":"t_revenue","metric": 5075422.0,"title": "w_revenue","metric": 4461996.0,"title": "v_revenue"
]
,
"run_id": 1536700,"code_title": "select_data","error": "",
"data": ["user_name": "C_51","num1": 51,"num2": 101,"num3": 151,"user_name": "H_51","num1": 51,"num2": 101, "num3": 151,"user_name": "C_52","num1": 52,"num2": 102,"num3": 152,"user_name": "H_52","num1": 52,"num2": 102,"num3":152,"user_name": "C_53","num1": 53,"num2": 103,"num3": 153
]]
console.log(ele.map( structure => Object.keys(structure.data[0])))
.as-console-wrapper max-height: 100% !important; top: 0;
【讨论】:
以上是关于从 JSON 中获取键名和值名并在 Highcharts 中使用的主要内容,如果未能解决你的问题,请参考以下文章
Javascript:使用自定义键名和值将字符串数组解析为对象