【问题标题】:Get value from (JSON) String从(JSON)字符串中获取值
【发布时间】:2016-09-30 13:39:26
【问题描述】:

我有一个通过 HTTP 请求传递的字符串。但是我无法从中获得价值。字符串如下:

var a = {"health":"img/biking_cropped.jpg","budget":"img/hip_cropped.jpg","culture":"img/old_museum_cropped.jpg"}

但是,我无法获得例如 Health 的值,因为 a.health 给出了 undefined。但是 a[0] 只返回 {。使用 JSON.parse 会使运行它的服务器崩溃。

【问题讨论】:

  • 它对我有用:jsfiddle.net/vj1nqeu5
  • 它不是一个字符串,它工作正常jsfiddle.net/vasi_32/8ocbbx2r
  • "字符串如下" — 这不是字符串。 “但是 a[0] 只返回 { 。” — 你不会从你提供的代码中得到那个结果。 “使用 JSON.parse 会使运行它的服务器崩溃”——以什么方式?报告了哪些错误?
  • 我认为问题在于我已经通过缓冲区获取了值并将其字符串化。我尝试过另一种方式或改变它
  • 那是一个对象,而不是一个字符串 pal。如果字符串应该是: var a = "something";

标签: javascript json node.js


【解决方案1】:

这里a是一个对象

除了使用a.health等你还可以使用for .in来获取key和它的值

var a ={
        "health":"img/biking_cropped.jpg",
       "budget":"img/hip_cropped.jpg",
       "culture":"img/old_museum_cropped.jpg"
       }

for(var keys in a){
document.write('<pre>'+keys + '--'+a[keys]+'<pre>')
}

查看jsfiddle

您还可以使用dot(.)bracket [] 表示法来获取键的值。

可能你正在尝试做一个[key]。例如a['health']

【讨论】:

    【解决方案2】:

    使用 JSON 解析器。有很多 JSON 解析器。

    http://www.json.org/

    【讨论】:

      【解决方案3】:

      您需要选择值并将值分配给变量。您可以使用点表示法 . 或括号表示法 [ ]

      var a = {"health":"img/biking_cropped.jpg","budget":"img/hip_cropped.jpg","culture":"img/old_museum_cropped.jpg"};
      
      var health = a['health'];
      var budget = a.budget;
      var culture = a.culture;
      
      console.log(health +  "---- " + budget + " ---- " + culture) 
      // img/biking_cropped.jpg---- img/hip_cropped.jpg ---- img/old_museum_cropped.jpg
      

      这是一个codepen链接http://codepen.io/anon/pen/LZEjme

      【讨论】:

        【解决方案4】:

        a[0] 返回“{”的唯一原因是整个 json 对象是一个字符串。

        var a = "abc";
        console.log(a[0]); // Prints a
        typeof a; //prints "string"
        
        var b = {};
        typeof b; //prints "object"
        

        检查变量的“typeof”。它应该是一个对象 vs 字符串。

        【讨论】:

          猜你喜欢
          • 2021-07-13
          • 1970-01-01
          • 2023-03-18
          • 1970-01-01
          • 2017-07-25
          • 2020-06-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多