【问题标题】:How would I find a JSON variable without knowing the parent variable names?在不知道父变量名称的情况下如何找到 JSON 变量?
【发布时间】:2020-11-01 03:55:39
【问题描述】:

我需要设置 displayName 变量,但我不知道如何访问它。对于上下文,我正在制作一个 C# 应用程序来将此变量设置为其他值。 displayName 的父变量因使用此应用程序的用户而异。

为了不泄露我的任何个人信息,我对这些进行了模糊处理。

我想我可能需要遍历 JSON 对象子对象,但我不确定。

【问题讨论】:

    标签: json minecraft


    【解决方案1】:

    嘿,所以你是对的,你将不得不遍历对象并搜索以找到显示名称。

    我在下面写了一个小函数,它将递归地遍历对象并搜索displayName。显然,如果您不知道位置或路径名,这很困难,因此您必须有一种非常开放的方式来搜索 JSON 对象。

    如果您可以控制请求数据的方式,也许您可​​以更改格式以使数据结构更加一致,但我真的不知道您从哪里获取数据。

    这只是众多方法之一。

    const obj = {
      authenticationDatabase : {
        accessToken: 'Mock',
        profiles: {
          displayName: 'THIS IS A MOCK USER NAME'
        },
        properties: [],
        username: 'MOCK'
      }
    }
    
    const obj2 = {
      authenticationDatabase : {
        accessToken: 'Mock',
        profiles: {
          deep: {
            nested: {
              object: {
                displayName: 'THIS IS A MOCK USER NAME'
              }
            }
          }
        },
        properties: [],
        username: 'MOCK'
      }
    }
    
    const findDisplayName = obj => {
      if(!obj || typeof(obj) != 'object'){
        return false;
      }
      if(Object.keys(obj).includes("displayName")){
        return obj["displayName"]
      }
    
      for(const key in obj){
        if(findDisplayName(obj[key])){
          return findDisplayName(obj[key])
        }
      }
      return false;
    }
    
    console.log(findDisplayName(obj))
    console.log(findDisplayName(obj2))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      相关资源
      最近更新 更多