Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JSON对象转换为JavaScript对象_Javascript_Json - Fatal编程技术网

如何将JSON对象转换为JavaScript对象

如何将JSON对象转换为JavaScript对象,javascript,json,Javascript,Json,我正在尝试将包含的JSON对象数据转换为JavaScript对象` { "base": "USD", "date": "2016-12-14", "rates": { "AUD": 1.3319, "BGN": 1.8375, "BRL": 3.311, "CAD": 1.3116, "CHF": 1.0097, "CNY": 6.9052, "CZK": 25

我正在尝试将包含的JSON对象数据转换为JavaScript对象`

{
    "base": "USD",
    "date": "2016-12-14",
    "rates": {
        "AUD": 1.3319,
        "BGN": 1.8375,
        "BRL": 3.311,
        "CAD": 1.3116,
        "CHF": 1.0097,
        "CNY": 6.9052,
        "CZK": 25.388,
        "DKK": 6.986,
        "GBP": 0.78883,
        "HKD": 7.7566,
        "HRK": 7.0843,
        "HUF": 295.84,
        "IDR": 13288,
        "ILS": 3.8097,
        "INR": 67.479,
        "JPY": 114.98,
        "KRW": 1166,
        "MXN": 20.262,
        "MYR": 4.4441,
        "NOK": 8.4764,
        "NZD": 1.3849,
        "PHP": 49.716,
        "PLN": 4.1716,
        "RON": 4.2421,
        "RUB": 61.197,
        "SEK": 9.1651,
        "SGD": 1.424,
        "THB": 35.59,
        "TRY": 3.4879,
        "ZAR": 13.67,
        "EUR": 0.9395
    }
}
到目前为止,我在console中尝试了什么

var text = $.getJSON('http://api.fixer.io/latest?base=GBP')
var obj = JSON.parse(text);
这给了我一个错误

var text = $.getJSON('http://api.fixer.io/latest?base=GBP')
var obj = JSON.stringify(text, 0, 2)
把一切都变成弦,这不是我想要的

我试图实现(在设法将它们转换为对象之后)


它将返回JSON对象数据中的值1.3319。谢谢

如果您只需查看该请求的响应,就可以看到JSON位于
responseText
属性的内部。只要做:

var obj = JSON.parse(text.responseText);
此外,getJson是一个异步调用,因此您需要在回调中执行此操作,否则响应可能还不存在:

var obj;
var text = $.getJSON('http://api.fixer.io/latest?base=GBP', function() {
  obj = JSON.parse(text.responseText);
});
编辑:正如评论员指出的,您也可以直接从responseJSON属性获取JSON:

var obj;
var text = $.getJSON('http://api.fixer.io/latest?base=GBP', function(){
   obj = text.responseJSON;
});
jQuery为您解析JSON,但请求是异步的,因此它不会直接返回响应文本;相反,它返回一个

这应该适合您:

$.getJSON('http://api.fixer.io/latest?base=GBP').then( function ( obj ) {
  console.log( obj );
} );
不要使用
JSON.parse()
JSON.stringify()
。如jquery文档
$所示。getJSON(url,回调)
接受回调。另外,$.getJSON()在后台使用$.parseJSON(),因此默认情况下将对象传递到回调中

你的问题


var text=$.getJSON('http://api.fixer.io/latest?base=GBP“)
”这给了我一个错误。“错误是什么?我首先遇到了http/https错误,您可能想删除该协议。请阅读文档:。在Chrome中,它似乎已经在response中被解析。responseJSON您肯定也可以从responseJSON获得它!根据Paulpro的回答,JSON响应也作为参数传递给回调函数。
$.getJSON('http://api.fixer.io/latest?base=GBP').then( function ( obj ) {
  console.log( obj );
} );
var text = $.getJSON('http://api.fixer.io/latest?base=GBP' , function(response){

console.log(response.rates.AUD);

})