Преобразовать JSON в массив
У меня есть этот скрипт:
<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(data), но он ничего не возвращает. Что я делаю неправильно? Пожалуйста помоги.
PS. Я использую Yii, этот код находится в представлении, и мне нужно преобразовать эти данные в массив, чтобы я мог использовать их с API-интерфейсом handsontable.
2 ответа
Сначала добавьте dataType
на ваш вызов AJAX, установите его 'json'
и он автоматически преобразует данные при повторном вводе. Теперь просто установите данные в вашем success
success: function(data) {
var myArray = data.score;
}
@tymeJV правильно, но если вам действительно нужен массив, вы можете сделать это
var players = $.parseJSON(data);