Я пытаюсь взять объект из моего контроллера, когда я console.info(response)
правильно показываю значение, которое находится в
[
{
"itemValue":100,
"itemUnit":"2"
}
]
к сожалению, я пытаюсь использовать объект, например response.itemValue
, когда я консолью показывает undefined
. Я стараюсь var object = response
. во время консоли он показывает то же значение. Пожалуйста, я хочу использовать данные ответа.
if (itemID){
$.ajax({
type:'POST',
url:'?syspath=ajax&controller=ajax&action=getActItemDose',
data: { 'itemId': itemID, 'itemType': itemType },
success:function(response){
// var obj = jQuery.parseJSON(data);
console.info(response);
var object = response;
var value = object.itemValue;
var unit = object.itemUnit;
console.info(object);
console.info(value);
}
});
}
Это контроллер, в котором я кодирую объект в Json.
$row = $getProcess->fetch();
$object[] = array(
'itemValue' => $row['each_dose'],
'itemUnit' => $row['unit_dose']
);
echo json_encode($object);
Ваш response
— это массив. Итак, вам нужно получить к нему доступ, как
response[0].itemValue
или вы можете перебрать массив
response.forEach(element => {
console.info(element.itemValue);
});
Ниже приведен пример
const response = JSON.parse(`[
{
"itemValue":100,
"itemUnit":"2"
}
]
`);
response.forEach(element => {
console.info(element.itemValue);
});
это работает для данных массива, это было действительно полезно
Это сработало, изменив этот несколько элементов
$object[] = array();
в
$object = array();
и JSON.parse(данные)
var object = JSON.parse(data);
value = object.itemValue;
unit = object.itemUnit;
Я рекомендую использовать библиотеку jQuery. Для разбора JSON просто выполните
var obj = JSON.parse(data);
// Accessing individual value from JS object
alert(obj.itemValue);
alert(obj.itemUnit);
Я попробую с вашим предложением. каким-то образом я получил undefined, когда console.info