$ .parseJSON()返回undefined

时间:2016-12-08 23:43:37

标签: javascript jquery json

我正在尝试从我的ERP平台解析一些数据(用C#编写的API)。 当我尝试解析数据中包含的信息时,我得到一个未定义的结果。 我一直在寻找一些答案,我甚至可以找到另一种方法,用这个:

for(var  i in data){

      top[i] = $.parseJSON(JSON.stringify(data[i]));

但是我想知道为什么这个JSON解析不起作用,因为我按照要求做了。

我的网络应用API是用Ruby on Rails编写的,仅供参考

致以最诚挚的问候,

.js文件(home.js)

$(document).ready(function () {

    $('#artigos-container').html(botao_load);

    var id_categoria = $("#titulo-categoria").attr('data-id-categoria');
    console.log("ID CATEGORIA : " + id_categoria);
    var url_categoria = base_url_primavera + '/categorias/'+id_categoria;

    /*var id_subcategoria = null;
    var url_subcategoria = null;
    var subcategoria = $("#titulo-subcategoria");
    if(subcategoria.length){
        is_subcategoria = true;
        id_subcategoria = subcategoria.attr('data-id-subcategoria');
        url_subcategoria = base_url_primavera + '/categorias/'+id_categoria+'/subcategoria/' + id_subcategoria;
    }*/

    $.ajax({
        type: 'GET',
        url: url_categoria,
        error: function (err) {
            console.log("error fetching category");
            $("#titulo-categoria").html('erro');
        },
        dataType: 'json',
        success: function (data) {
            console.log(data);
            var categoria_temp = $.parseJSON(data);
            var desc_categoria = categoria_temp.DescCategoria;
            console.log(desc_categoria);
            $("#titulo-categoria").html(desc_categoria);
        }
    })
});

数据变量日志

{"CodCategoria":"H01","DescCategoria":"Computadores","numExemplaresCategoria":0}

1 个答案:

答案 0 :(得分:4)

正如您已经提到的dataType: 'json',jQuery已经解析了数据。所以你不需要再次解析。

因此,请将此行var categoria_temp = $.parseJSON(data);更改为

var categoria_temp = data;

同样,当您执行for..in时,data[i]中的值不是要解析的有效json

for(var  i in data){

      top[i] = $.parseJSON(JSON.stringify(data[i]));