Не удается прочитать данные JSON с помощью JQuery

У меня есть данные в таком формате:

[{"data":{"maximum_seconds":"-1","emergency_address_code":"","e999_code":""},{"data":{"maximum_seconds":"-1","emergency_address_code":"","e999_code":""}}]

Я пытаюсь читать с помощью JQuery.

Я пробовал несколько вариантов, но ни один из них не работает.

for(var i in data) {
    console.info( data.maximum_seconds);
    console.info( data[i].maximum_seconds);
}

console.info( x[1].maximum_seconds);

мой код выглядит следующим образом:

вар х = voip_get_numbers('', ''); вар х = voip_get_numbers('', ''); x.done (функция (данные) { $('#d').append(данные);

for(var i in jsonObjData) {
    console.info( data[i] );
}

});

любая моя функция JQuery:

function voip_get_numbers(account_seq, customer) {
    return $.ajax({
        url : '/section/voip/numbers',
        type: "GET",
        data: {
            "action": "list_numbers",
            "seq": account_seq,
            "customer": customer,
        },
        datatype: 'json',
    });
}

Я пробовал некоторые другие, но мой код был перезаписан, поэтому у меня его нет - я думаю, что это довольно простая задача, но я не лучший в JQuery и JS, так что извините за мое невежество.

Любая помощь будет здорово, пожалуйста.

Спасибо

В этом коде нет jQuery.

CertainPerformance 15.03.2019 09:52

ваш JSON недействителен

Nick Parsons 15.03.2019 09:56

Да, неверный json-

Roy Bogado 15.03.2019 09:56
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
3
4
444
3

Ответы 3

Вы должны убедиться, что данные JSON являются JSON объектом, а не строкой. Если ваши данные представляют собой строку, преобразуйте ее в объект JSON.

jQuery предоставляет этот метод: $.parseJSON( jsonString )

Пример:

var data = '[{"data":{"maximum_seconds":"-1","emergency_address_code":"","e999_code":""},{"data":{"maximum_seconds":"-1","emergency_address_code":"","e999_code":""}}]';

var jsonObjData = $.parseJSON( data );

я добавил весь свой код в свой пост - если я проанализирую JSON, как я буду читать данные?

charlie 15.03.2019 10:07

поскольку ваши внешние данные представляют собой массив, поэтому вы, вероятно, могли бы прочитать это с предупреждением (jsonObjData[0].data.mazimum_sources) извините, я сейчас снаружи, поэтому я не могу его проверить. я опубликую рабочий пример позже, как только я вернулся домой.

mackbex 15.03.2019 10:10

Ваш файл JSON недействителен. Измените свой файл следующим образом:

 [{
    "data": {
        "maximum_seconds": "-1",
        "emergency_address_code": "",
        "e999_code": ""
    }
}, {

    "data": {
        "maximum_seconds": "-1",
        "emergency_address_code": "",
        "e999_code": ""
    }
}]

Я использовал JSONLint для проверки файла.

чем вы можете разобрать строку на объект с помощью

var json = JSON.parse(jsonString)

чтобы получить данные от объекта, используйте

for (var j in json) {
    var maximum_seconds = j.data.maximum_seconds
    var emergency_address_code = j.data. emergency_address_code
    var e999_code = j.data. e999_code
    // ... your code
}

я использую json_encode($ret); в PHP, чтобы создать его. у меня есть функция, которая возвращает вызов $.ajax

charlie 15.03.2019 10:10

Нет явного jQuery, как уже указано в CertainPerformance.

Однако ваш JSON неправильно структурирован. Должно выглядеть так.

 [
        {
            "data": {
                "maximum_seconds": "-1",
                "emergency_address_code": "",
                "e999_code": ""
            }
        },
        {
            "data": {
                "maximum_seconds": "-1",
                "emergency_address_code": "",
                "e999_code": ""
            }
        }
    ]

Пример:

var a = [{
    "data": {
        "maximum_seconds": "-1",
        "emergency_address_code": "",
        "e999_code": ""
    }
}, {
    "data": {
        "maximum_seconds": "-1",
        "emergency_address_code": "",
        "e999_code": ""
    }
}]

//Syntax 1
for (var i in a) {
    console.info(a[i].data.maximum_seconds);
    console.info(a[i].data.emergency_address_code);
    console.info(a[i].data.e999_code);
}

//Syntax 2
for (var i = 0; i < a.length; i++) {
    console.info(a[i].data.maximum_seconds);
    console.info(a[i].data.emergency_address_code);
    console.info(a[i].data.e999_code);
}

//Syntax 3
a.forEach( x => {
    console.info(x.data.maximum_seconds);
    console.info(x.data.emergency_address_code);
    console.info(x.data.e999_code); 
} );

И тогда зачем вы повторяете свойство "данные". Вы можете сделать это:

 [
        {
            "maximum_seconds": "-1",
            "emergency_address_code": "",
            "e999_code": ""
        },
        {
            "maximum_seconds": "-1",
            "emergency_address_code": "",
            "e999_code": ""
        }
    ]

Другие вопросы по теме