我想用JavaScript解析JSON字符串。响应类似于
var response = '{"result":true,"count":1}';
如何从中获取值结果和计数?
我想用JavaScript解析JSON字符串。响应类似于
var response = '{"result":true,"count":1}';
如何从中获取值结果和计数?
当前回答
如果使用DojoToolkit:
require(["dojo/json"], function(JSON){
JSON.parse('{"hello":"world"}', true);
});
其他回答
您可以像在其他答案中一样使用eval函数。(不要忘记额外的大括号。)当你深入研究时,你会知道为什么),或者简单地使用jQuery函数parseJSON:
var response = '{"result":true , "count":1}';
var parsedJSON = $.parseJSON(response);
OR
您可以使用以下代码。
var response = '{"result":true , "count":1}';
var jsonObject = JSON.parse(response);
您可以使用jsonObject.result和jsonObject.count访问这些字段。
更新:
如果输出未定义,则需要遵循此答案。也许您的json字符串具有数组格式。您需要像这样访问json对象财产
var response = '[{"result":true , "count":1}]'; // <~ Array with [] tag
var jsonObject = JSON.parse(response);
console.log(jsonObject[0].result); //Output true
console.log(jsonObject[0].count); //Output 1
以下示例将明确说明:
let contactJSON = '{"name":"John Doe","age":"11"}';
let contact = JSON.parse(contactJSON);
console.log(contact.name + ", " + contact.age);
// Output: John Doe, 11
我认为JSON.parse(myObject)可以工作。但根据浏览器的不同,它可能值得使用eval('('+myObject+')')。我唯一建议注意的问题是JSON中的多级列表。
在JavaScript中解析JSON的标准方法是JSON.parse()
JSON API是在ES5(2011)中引入的,目前已在超过99%的浏览器(按市场份额)和Node.js中实现。它的用法很简单:
const json=“{”水果“:”菠萝“,”手指“:10}”;const obj=JSON.parse(JSON);控制台日志(obj.fruit,obj.fingers);
唯一一次不能使用JSON.parse()的情况是,如果您正在为古老的浏览器进行编程,例如IE 7(2006)、IE 6(2001)、Firefox 3(2008)、Safari 3.x(2009)等。或者,您可能处于一个不包含标准API的深奥JavaScript环境中。在这些情况下,使用JSON的发明人Douglas Crockford编写的JSON参考实现json2.js。该库将提供JSON.parse()的实现。
当处理非常大的JSON文件时,JSON.parse()可能会因其同步特性和设计而窒息。为了解决这个问题,JSON网站推荐使用Oboe.js和clarinet等第三方库,它们提供流式JSON解析。
jQuery曾经有一个$.parseJSON()函数,但在jQuery 3.0中已弃用。无论如何,在很长一段时间里,它只是JSON.parse()的包装器。
如果您是从外部站点获取此信息,那么使用jQuery的getJSON可能会有所帮助。如果它是一个列表,你可以用$.each遍历它
$.getJSON(url, function (json) {
alert(json.result);
$.each(json.list, function (i, fb) {
alert(fb.result);
});
});