首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json在不知道变量数据的情况下提取密钥

json在不知道变量数据的情况下提取密钥
EN

Stack Overflow用户
提问于 2022-06-14 01:42:34
回答 2查看 60关注 0票数 1

刚从杰森开始。我有一些类似于这个数据的东西(这个数据叫做Data0012.json,我不能编辑它或者将-162.65更改为另一个东西.还有..。第一个数据会发生变化,所以我不能称之为):

代码语言:javascript
复制
{
    "-162.65": {
        "Player": "DntFuckwithMeMTFrs",
        "Hands": "44",
        "(BTN) PFR (2-2,25) (16+)": "13",
        "!!!0 All-In Equity Adjusted BB/100": "-162.65",
        "BH_MTT_3Bet (BB vs BU open)": "50"
    },
    "-162.27": {
        "Player": "paramasivum",
        "Hands": "40",
        "(BTN) PFR (2-2,25) (16+)": "9",
        "!!!0 All-In Equity Adjusted BB/100": "-162.27",
        "BH_MTT_3Bet (BB vs BU open)": "67"
    },
    "-157.32": {
        "Player": "Fairline69",
        "Hands": "49",
        "(BTN) PFR (2-2,25) (16+)": "25",
        "!!!0 All-In Equity Adjusted BB/100": "-157.32",
        "BH_MTT_3Bet (BB vs BU open)": "17"
    },
}

我需要从这些数据中提取密钥,而不需要知道这些数据(就好像我没有看到json一样),并且不需要更改json文件.正如上面所示。

我得用js来做这个。键将随着新的json而改变,我需要重复这个过程并提取出在下一个脚本中使用它们的键。我该如何正确地做这件事。

我试过这个:

代码语言:javascript
复制
<script src="./Data0012.json">
  var s = require('./Data0012.json');
  var data = JSON.parse(s);
  for (var key in data) {
    var value = data[key];
  }
  console.log(key);
</script>

但是控制台给了我一个数据错误:

Uncaught :意外令牌':‘(在Data0012.json:2:14)属性

我能做些什么来解决这个问题。帮助请编辑;输入: Data0012.json输出:Data0012.json的键

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-14 02:20:14

如何加载json文件

为您提供了两种参考方法

❶封装它以创建Javascript对象

代码语言:javascript
复制
<script type="text/javascript" src="Data0012.json"></script>

❷读取文件路径

代码语言:javascript
复制
function loadJSON(filePath, callback) {
    var xobj = new XMLHttpRequest();
    xobj.overrideMimeType("application/json");
    xobj.open('GET', filePath, true);
    xobj.onreadystatechange = function() {
        if (xobj.readyState == 4 && xobj.status == "200") {
            // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode
            callback(xobj.responseText);
        }
    };
    xobj.send(null);
}

loadJSON("Data0012.json", function(text){
    const data = JSON.parse(text);
    console.log(data);
});

如何获取对象的密钥

代码语言:javascript
复制
Object.keys(obj)

如何在不同脚本中获取数据对象

如果您有一个服务器,您可以编写api来编辑和修改json文件,并在不同的脚本中调用api获取json数据,或者只需使用

来保持更新的数据。

代码语言:javascript
复制
// Get object key
const keys = Object.keys(obj);

// Stored data
localStorage.setItem('keys', keys);

// Call method to get stored data when in different scripts
const keys = localStorage.getItem('keys');
票数 1
EN

Stack Overflow用户

发布于 2022-06-14 02:47:46

如果您想提取JSON对象的键,可以尝试这个

代码语言:javascript
复制
const data = {
    "-162.65": {
        "Player": "DntFuckwithMeMTFrs",
        "Hands": "44",
        "(BTN) PFR (2-2,25) (16+)": "13",
        "!!!0 All-In Equity Adjusted BB/100": "-162.65",
        "BH_MTT_3Bet (BB vs BU open)": "50"
    },
    "-162.27": {
        "Player": "paramasivum",
        "Hands": "40",
        "(BTN) PFR (2-2,25) (16+)": "9",
        "!!!0 All-In Equity Adjusted BB/100": "-162.27",
        "BH_MTT_3Bet (BB vs BU open)": "67"
    },
    "-157.32": {
        "Player": "Fairline69",
        "Hands": "49",
        "(BTN) PFR (2-2,25) (16+)": "25",
        "!!!0 All-In Equity Adjusted BB/100": "-157.32",
        "BH_MTT_3Bet (BB vs BU open)": "17"
    },
}

const keys = Object.keys(data) // ["-162.65","-162.27","-157.32"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72610662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档