【问题标题】:How to get json key and value in javascript?如何在javascript中获取json键和值?
【发布时间】:2013-09-25 11:56:37
【问题描述】:

我正在返回一个json,如下所示

{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}

我正在尝试获取每个元素的键和值:

..
}).done(function(data){
    alert(data['jobtitel']);
});

我收到undefined 的警报。为什么?我试过data.jobtitel,我试过循环但没有成功..

【问题讨论】:

  • 首先你需要将该 json 转换为数组,然后必须尝试 data.jobtitel
  • JSON 是字符串,你想访问那里,然后你必须转换......
  • @swan,$.parseJSON 并非总是在每个浏览器中都可用.. 怎么办?
  • 如果你添加 jquery 然后 $.parseJSON 将工作...否则你必须使用纯 JavaScript JSON 转换器 JSON.eval(jsonstring)
  • @swan,完美!现在它正在工作

标签: javascript jquery json


【解决方案1】:
//By using jquery json parser    
var obj = $.parseJSON('{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}');
alert(obj['jobtitel']);

//By using javasript json parser
var t = JSON.parse('{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}');
alert(t['jobtitel'])

Check this jsfiddle

jQuery 3.0 开始,不推荐使用 $.parseJSON。要解析 JSON 字符串,请使用 而是使用本机 JSON.parse 方法。

来源:http://api.jquery.com/jquery.parsejson/

【讨论】:

  • 这没有足够的文档记录。使用 json['KeyAsString'] 的能力。非常好。谢谢。
  • 如何将 Entwickler 解析为 jobtitle?有什么原生的还是我必须编写自己的代码?
【解决方案2】:

您已经使用 JSON.parse() 解析了 Json 字符串

..
}).done(function(data){
    obj = JSON.parse(data);
    alert(obj.jobtitel);
});

【讨论】:

  • 简化:JSON.parse(data).jobtitle
【解决方案3】:
var data = {"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}

var parsedData = JSON.parse(data);
alert(parsedData.name);
alert(parsedData.skills);
alert(parsedData.jobtitel);
alert(parsedData.res_linkedin);

【讨论】:

  • 这就是你在 javascript 中的做法。
【解决方案4】:

http://jsfiddle.net/v8aWF/

制作了一个小提琴。去看看吧

(function() {
    var oJson = {
        "name": "", 
        "skills": "", 
        "jobtitle": "Entwickler", 
        "res_linkedin": "GwebSearch"
    }
    alert(oJson.jobtitle);
})();

【讨论】:

    【解决方案5】:

    获取钥匙

    var a = {"a":"1","b":"2"};
    var keys = []
    for(var k in a){
      keys.push(k)
    }
    

    为了获得价值。

    var a = {"a":"1","b":"2"};
    var values = []
    for(var k in a){
      values.push(a[k]);
    }
    

    【讨论】:

      【解决方案6】:

      一种简单的方法,而不是使用 JSON.parse

       success: function(response){
           var resdata = response;
           alert(resdata['name']);
      }
      

      【讨论】:

        【解决方案7】:

        看起来data 不包含您认为它包含的内容 - 检查一下。

        let data={"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"};
        
        console.log( data["jobtitel"] );
        console.log( data.jobtitel );

        【讨论】:

          【解决方案8】:

          您可以使用以下解决方案在 JavaScript 中获取 JSON 键和值:

          var dt = JSON.stringify(data).replace('[', '').replace(']', '');
          if (dt) {
            var result = jQuery.parseJSON(dt);
            var val = result.YOUR_OBJECT_NAME;
          }
          

          【讨论】:

          • 虽然此代码 sn-p 可能是解决方案,但包含解释确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
          猜你喜欢
          • 2019-04-03
          • 1970-01-01
          • 2011-10-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-20
          • 2018-09-12
          相关资源
          最近更新 更多