javascript - 在 Javascript 中构建复杂的 JSON

标签 javascript json

刚刚开始使用 JavaScript,需要一些关于如何最好地动态/动态创建/构建下面的 JSON 的指导。

一些键需要来自变量。例如,在下面的 JSON 中,名为“variable_key_*”的键需要来自变量。

{
  "static_key_1": "value",
  "static_key_2": [{
    "static_key_3": {
      "id": "1097274153"
    },
    "static_key_4": "value",
    "static_key_5": {
      "static_key_6": {
        "variable_key_1": "value",
        "variable_key_2": "value",
        "variable_key_3": "value"
      },
      "static_key_7": {
        "static_key_8": [
          "value"
        ]
      }
    }
  }]
}

最佳答案

您可以使用括号表示法在带有变量的对象中设置键。

let theVariable = 'useful_name';
let theValue = 12345;
let myObj = {};

myObj [ theVariable ] = theValue;

将导致:

{ useful_name : 12345 }

并按照您的预期进行字符串化。

根据更多信息的请求进行编辑:

假设您想创建一个包含对象数组的嵌套对象,我们将使用已有的对象。

myObj [ someOtherVar ] = {};
let myObjSomeOtherVar = myObj [ someOtherVar ];
myObjSomeOtherVar [ someOtherKey ] = [ ].push ( { } );
let theArrayOfObjects = myObjSomeOtherVar [ someOtherKey ];
theArrayOfObjects [ 0 ] [ anotherKeyName ] = 'hello';

这会导致(假设您实际上声明了所有变量等)

{ useful_name : 12345,
  valOfSomeOtherVar : 
      { valOfSomeOtherKey : 
          [ { valOfAnotherKeyName : 'hello' } ] 
      }
} 

诀窍是抽象地开发您的数据模式(因此您想要的骨架),然后编写一个构建它的例程。我很少以这种方式手动构建一个对象,除非它只是一个小的 util obj,我通常将一个空对象提供给例程来构建它(使用循环、递归、条件等)。至于实践,至少有一个数据结构的框架总是一个好主意,它也可以用作编写函数的引用,该函数只需传递一些键名和值的变量即可生成整个事物。您将为该函数编写一个测试,该测试将返回您预测的对象等。

关于javascript - 在 Javascript 中构建复杂的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236183/

相关文章:

javascript - 使用无法按预期工作的 JavaScript 切换特定文本

sql - 带有要记录的数组的 Json 列

python - cgi.FieldStorage 不从 requests.post 读取 json 数据

java - 使用 JSONObject 和 JSONArray 构建 JSON Web token

javascript - 如何不区分大小写地搜索 JSON 文件 key

javascript - 下载 URL 在浏览器地址栏中粘贴/输入时有效,但在 href 或 window.open 或 Location 中无效

javascript - 正则表达式 javascript/jquery 与 url

javascript - 用另一个替换匹配的字符串

javascript - 如何在vue即时搜索中创建自定义细化列表?

json - 嵌套 JSON Feed 返回错误