У меня есть данные в таком формате:
[{"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, так что извините за мое невежество.
Любая помощь будет здорово, пожалуйста.
Спасибо
ваш JSON недействителен
Да, неверный json-
Возможный дубликат Как вы можете прочитать этот JSON, используя jquery или javaScript

Вы должны убедиться, что данные 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, как я буду читать данные?
поскольку ваши внешние данные представляют собой массив, поэтому вы, вероятно, могли бы прочитать это с предупреждением (jsonObjData[0].data.mazimum_sources) извините, я сейчас снаружи, поэтому я не могу его проверить. я опубликую рабочий пример позже, как только я вернулся домой.
Ваш файл 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
Нет явного 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": ""
}
]
В этом коде нет jQuery.