конвертировать json в массив

63
5

У меня есть этот скрипт:

<script type="text/javascript">

jQuery(function($) {
var newsList = $('.handsontable');

function updateNews(){
newsList.html("Loading…");
$.ajax({
url: "<?php echo $this->createUrl('data')?>",
cache: false,

success: function(data) {

//alert(data);

newsList.html(JSON.parse(data));
},
});
}

updateNews();

});

который возвращает действительный json:

{
"score": [
{
"player_fullname": "Alex",
"game_id": "78",
"player_id": "1"
},
{
"player_fullname": "George",
"game_id": "78",
"player_id": "2"
},
{
"player_fullname": "Nick",
"game_id": "78",
"player_id": "3"
},
{
"player_fullname": "John",
"game_id": "78",
"player_id": "4"
},
{
"player_fullname": "Steve",
"game_id": "78",
"player_id": "5"
}
]
}

Теперь я хочу преобразовать его в массив. Я попробовал JSON.parse (данные), но ничего не возвращает. Что я делаю не так? Пожалуйста помоги.

PS. Я использую Yii, этот код находится в представлении, и мне нужно преобразовать эти данные в массив, чтобы я мог использовать его с помощью handsontable api.

спросил(а) 2021-01-25T18:08:39+03:00 4 месяца, 3 недели назад
1
Решение
77

Во-первых, добавьте dataType в ваш вызов AJAX, установите его в 'json' и он автоматически преобразует данные при повторном входе. Теперь просто установите данные в свой success

success: function(data) {
var myArray = data.score;
}

ответил(а) 2021-01-25T18:08:39+03:00 4 месяца, 3 недели назад
44

@tymeJV верен, но если вам действительно нужен массив, вы можете это сделать


var players = $.parseJSON(data);

ответил(а) 2021-01-25T18:08:39+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема