从 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 titleuser_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:使用自定义键名和值将字符串数组解析为对象

delphi 操作ini文件 知道小节名和值,怎么得到关键字

数组里面获取键名和键值

数据类型映射:查询键名和返回值

过滤数组对象中的键值,将将键值替换成我们需要的键名及值名

如何使用咖啡脚本遍历 JSON 哈希