JSON от PHP до JQuery

0

im пытается сделать некоторые диаграммы, используя jquery jChartFX.

Когда Ive делал массивы в том же файле, используя php, он отлично работает, как бы то ни было, когда он должен быть захвачен из другого файла, потому что я пытаюсь использовать json.

массив выглядит следующим образом (print_f ($ chartArray))

Array ( 
    [0] => Array ( 
        [Procent rigtige] => 100 
        [Antal rigtige] => 4 
        [Antal mulige] => 4 
        [Date] => Januar-1970 ) 
    [1] => Array ( 
        [Procent rigtige] => 100 
        [Antal rigtige] => 4 
        [Antal mulige] => 4 
        [Date] => Februar-2014 ) 
)

Как всегда, когда я пытаюсь декодировать json, это похоже

Array ( 
    [0] => stdClass Object ( 
        [Procent rigtige] => 100 
        [Antal rigtige] => 4 
        [Antal mulige] => 4 
        [Date] => Januar-1970 ) 
    [1] => stdClass Object ( 
        [Procent rigtige] => 100 
        [Antal rigtige] => 4 
        [Antal mulige] => 4 
        [Date] => Februar-2014 ) 
 )

В любом случае, используя jquery, я могу разобрать json из моего php в jquery и сохранить его как массивы, а не объекты?

Или есть способ, которым я могу сделать это умнее?

я использую

echo json_encode($chartArray);

на моем getUserStats.php и получить им im using>

$.ajax({
       type: "GET",
       url: "getUserStats.php", data: {'type': 'monthly'},
       success: function(data) {
              chart1.setDataSource(JSON.parse(data)) 
       }
});
Теги:
jchartfx

4 ответа

1
Лучший ответ

Чтобы проанализировать json в jquery, вы можете использовать jQuery.parseJSON()

В PHP используйте json_encode() для кодирования массива.

В test.php добавьте заголовок ('Content-Type: application/json');

test.php

// header('Content-Type: application/json'); //change
$chartArray = array( 
"0" => array( 
    "Procent rigtige" => 100, 
    "Antal rigtige" => 4, 
    "Antal mulige" => 4, 
    "Date" => "January-1970" 
    ), 
"1" => array ( 
    "Procent rigtige" => 100, 
    "Antal rigtige" => 4, 
    "Antal mulige" => 4, 
    "Date" => "February-2014" ) 
);

echo json_encode($chartArray);

AJAX

$.ajax({ 
  type: "GET", 
  url: "test.php", 
  data: {'type': 'monthly'}, 
 // dataType: "json",     // change
  success: function(data) { 
    chart1.setDataSource(data); //change // output 100
  } 
});
  • 0
    Я изменил свой ответ. Теперь, пожалуйста, проверьте это.
  • 0
    @ user2979049, вы также можете редактировать свой вопрос ..
Показать ещё 2 комментария
2

Это не связано с jQuery или чем-либо еще, что вы делаете, это похоже на неправильное использование json_decode.

Вероятно, вы расшифруете JSON с помощью $arr = json_decode($json_string) но вы хотите, чтобы $arr = json_decode($json_string, true).

Второй аргумент json_decode, assoc, определяет, должен ли возврат быть ассоциативным массивом или объектами, которые вы получаете в представлении. См. Документацию json_decode.

Это возможный дубликат json_decode для массива

  • 0
    Звучит правильно, но когда я анализирую данные, когда я обновляю свой вопрос в другом файле, используя jquery, каким-то образом я могу сделать то же самое там?
  • 0
    Я не понимаю, что вы имеете в виду, анализируя данные [...] в другом файле с помощью jQuery ». Из обновленного вопроса, если ваш файл test.php выводит JSON, $.ajax(..., function(data) { - use data here, should be your JSON parsed into a javascript object - }) . Если что-то не работает, вы можете использовать Chrome Dev Tools или Firebug, чтобы проверить, правильно ли отправлен запрос и ваш test.php возвращает то, что вы хотите.
0

Если у вас есть файл с именем make_json.php в вашем корне, вы можете сделать это с помощью jQuery:

var json = $.getJSON('/make_json.php');

Затем в вашем файле make_json.php вам просто нужно будет make_json.php на какой-нибудь json. Использовать json_encode:

// ... assuming your array is called $array
echo json_encode($array);

Вам не нужен jQuery, но это, конечно, упрощает.

0

Это может помочь:

$json = json_encode($yourArray);
  • 0
    Я уже использую это на php, извините, просто забыл вставить его в код, но его сейчас редактируют

Ещё вопросы

Сообщество Overcoder
Наверх
Меню