Jquery json对变量的响应值

时间:2014-03-10 06:30:43

标签: jquery json

url http://www.freecurrencyconverterapi.com/api/convert/?q=USD-INR&compact=y

json回应

{
  "USD-INR": {
    "val": 61.235
  }
}

Jquery的

function convert_currency(){
    var currency = $('#convertor select').val();
    jQuery.ajax({
        type : 'GET',
        dataType: 'jsonp',
        data : {
            q : 'USD-' + currency,
            compact : 'y'
        },
        url : 'http://www.freecurrencyconverterapi.com/api/convert/',
        success : function(data){
            var value = data[0].val;
            $('#converted_amount').text(value);
        }
    });
}
$(document).ready(function(){
    convert_currency();
    $('#convertor select').change(function(){
        convert_currency(); 
    })
});

但我的方法不正确。 var value = data[0].val;。请纠正我......

4 个答案:

答案 0 :(得分:1)

尝试使用:

var value = data["USD-INR"].val;

<小时/> 由于您已将货币值分配给currency变量,因此您可以:

var value = data["USD-" + currency].val;

答案 1 :(得分:1)

像这样使用

data["USD-INR"].val

所以你的ajax就像

jQuery.ajax({
    type : 'GET',
    dataType: 'jsonp',
    data : {
        q : 'USD-' + currency,
        compact : 'y'
    },
    url : 'http://www.freecurrencyconverterapi.com/api/convert/',
    success : function(data){
        var value = data["USD-INR"].val;
        $('#converted_amount').text(value);
    }
});

答案 2 :(得分:1)

您不能使用[0],因为这是一个通用对象,而不是数组。请改用:

var value = data["USD-INR"].val;

答案 3 :(得分:1)

试试这个..

function convert_currency(){
    var currency = $('#convertor select').val();
    var conversionSpec = 'USD-' + currency;
    jQuery.ajax({
        type : 'GET',
        dataType: 'jsonp',
        data : {
            q : conversionSpec,
            compact : 'y'
        },
        url : 'http://www.freecurrencyconverterapi.com/api/convert/',
        success : function(data){
            var value = data[conversionSpec].val;
            $('#converted_amount').text(value);
        }
    });
}
$(document).ready(function(){
    convert_currency();
    $('#convertor select').change(function(){
        convert_currency(); 
    })
});