如何在javascript中获取json键和值?

Posted

技术标签:

【中文标题】如何在javascript中获取json键和值?【英文标题】:How to get json key and value in javascript? 【发布时间】: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,完美!现在它正在工作 【参考方案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 可能是解决方案,但包含解释确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。

以上是关于如何在javascript中获取json键和值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 Scala-Play Json 框架解析 Json 时获取键和值?

如何在javascript中获取redis中的所有键和值?

如何获取 JSON 键和值?

JSON路径抓取键和值

如何删除json对象键和值。?

如何从swift3中的JSON字符串中分别获取键和值?