将json对象转换为字符串

时间:2016-03-01 10:44:58

标签: javascript jquery codeigniter

我有以下控制器:

public function getPrice()
{
    $id = $this->input->post('q');
    $data['price'] = $this->emodel->get_peUniformPrice($id);

    echo json_encode($data);
}

输出:

"{\"price\":[{\"Price\":\"250\"}]}"

我怎样才能像250一样?我的jQuery:

function showPrice(size) {
    $.ajax({
        type: "POST",
        url: "<?php echo site_url('enrollment/getPrice/');?>",
        data: {
            q: size
        },
        success: function(data) {
            $("#txtpeUniform").val(data);
        },
    });
}

2 个答案:

答案 0 :(得分:2)

$.ajax方法会自动将字符串反序列化为对象,因此您只需访问所需的属性即可。假设您只想检索price数组中返回的第一个价格,您可以直接通过索引访问它。试试这个:

success: function(data) {
    $("#txtpeUniform").val(data.price[0].Price); // = 250
},

答案 1 :(得分:2)

我可以看到你正在使用jQuery ..如果你想把json对象变成一个javascript对象,你可以做类似的事情

var convertedObject = $.parseJSON($data);
alert(convertedObject.Price);

这实际上是将您的Json字符串转换为javascript对象,您可以引用该属性并从这些属性中获取值。让我再举一个例子

var jsonString = {'Firstname':'Thiren','Lastname':'Govender'};
var jObject = $.parseJSON(jsonString);
console.log(jObject.Firstname) // this will output Thiren.
console.log(jObject.Lastname) // this will output Govender.

修改你的代码

function showPrice(size) {
    $.ajax({
        type: "POST",
        url: "<?php echo site_url('enrollment/getPrice/');?>",
        data: {
            q: size
        },
        success: function(data) {
            console.log(data); // make sure this is returning something..
            $("#txtpeUniform").val(data);
        },
    });
}

我希望这可以帮助你......

此致