【问题标题】:how to accesss Json for numbered elements如何访问 Json 以获取编号元素
【发布时间】:2019-04-16 04:47:14
【问题描述】:

我的 JSON 对象将数字作为某些嵌套对象的键。无法使用 .(dot) 表示法访问这些元素

示例代码 { “1”:“完成” }

假设对象名称是 JSON JSON.1 访问方法不起作用

错误 意外的数字

【问题讨论】:

  • x[1] 其中 x 是包含解析 JSON 作为 javascript 对象的 javascript 变量的名称

标签: javascript json object


【解决方案1】:

点表示法不适用于所有键,但您始终可以尝试这样:JSON["1"],甚至为简单起见JSON[1]

【讨论】:

    【解决方案2】:

    使用括号表示法:

    const obj = { "1" : "Done" };
    console.log(obj[1]);

    【讨论】:

      【解决方案3】:

      您不能使用 dot notationMDN 访问 JavaScript 对象中的编号元素。

      该属性必须是有效的 JavaScript 标识符,即一系列字母数字字符,还包括下划线 ("_") 和美元符号 ("$"),不能以数字开头。

      您必须选择不同的访问方式,在这种情况下最常见的是Bracket notationMDN

      JSON[1]
      

      【讨论】:

        【解决方案4】:

        尝试在使用数字时添加双引号。 您尝试使用哪种语言运行。

        在下面的 Javascript 中,双引号和不带引号都可以使用。

        <script>
            var data = '{"1":"Done"}';
            var json = JSON.parse(data);
        
            document.write (json[1]); // without double quotes
            document.write  (json["1"]);// with double quotes
        </script>   
        

        【讨论】:

          【解决方案5】:

          在这种情况下,您应该使用 [] 而不是点运算符。

          var tes = { "test1" : { "3" : "Done", "char" : "TODO"}}
          
          for(var property in tes.test1) {
             //console.log(property)
             console.log(tes.test1[property])
          }
          

          var tes = { "test1" : { "3" : "Done", "char" : "TODO"}}
          
          for(var property in tes.test1) {
             //console.log(property)
             console.log(tes.test1[property])
          }

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-01-23
            • 1970-01-01
            • 1970-01-01
            • 2013-04-14
            • 1970-01-01
            • 1970-01-01
            • 2014-06-08
            • 1970-01-01
            相关资源
            最近更新 更多