【问题标题】:Data values not showing in jsonjson 中未显示的数据值
【发布时间】:2025-12-11 02:45:01
【问题描述】:

我的脚本有问题,它没有显示图表和数据 找遍了论坛,没有找到答案 为您提供我用于项目的代码

这是我的 js 代码:

$(function() {
$.getJSON('http://store.steamaccounts.me/test/jsonp.php?filename=test.json&callback=?', function(data) {

    // Create the chart
    window.chart = new Highcharts.StockChart({
        chart : {
            renderTo : 'container'
        },

        rangeSelector : {
            selected : 1
        },

        title : {
            text : 'test'
        },

        series : [{
            name : 'test',
            data : data,
            type : 'area',
            threshold : null,
            tooltip : {
                valueDecimals : 2
            },
            fillColor : {
                linearGradient : {
                    x1: 0, 
                    y1: 0, 
                    x2: 0, 
                    y2: 1
                },
                stops : [[0, Highcharts.getOptions().colors[0]], [1, 'rgba(0,0,0,0)']]
            }
        }]
    });
});

这是我的 php 代码:

<?php

$data = '{}'; // json string

if(array_key_exists('callback', $_GET)){

    header('Content-Type: text/javascript; charset=utf8');


    $callback = $_GET['callback'];
    echo $callback.'('.$data.');';

}else{
    // normal JSON string
    header('Content-Type: application/json; charset=utf8');

    echo $data;
}

如果有任何帮助,我将不胜感激 感谢您的快速回复

【问题讨论】:

  • 您是否应该在 JSON 序列化中返回空对象以外的内容?

标签: php json jsonp highstock


【解决方案1】:

从 JQuery 1.4 开始,如果您的 JSON 文件包含错误,则 getJSON 方法会静默失败。 以防万一最好检查返回的 JSON 数据。

【讨论】:

    【解决方案2】:

    我看到你的数据是空的,所以请确保你得到任何值。

    【讨论】:

      【解决方案3】:

      我认为问题可能在于变量$data 从未从空的json 对象{} 更改。您可以使用php函数json_encode创建一个json字符串。

      json_encode 接受一个数组作为输入,并将其转换为以字符串形式存储的 json 兼容对象。

      然后就可以将字符串回显给浏览器了。

      【讨论】:

      • json_encode 只是在 JSON 序列化格式上创建一个字符串。他的$data 变量(字符串 - {})是一个有效的 JSON 序列化。
      • @MikeBrant 我知道,我只是在告诉他一种使用变量创建 json 字符串的方法,而无需进行大量混乱的字符串操作,以防万一他需要更改代码以输出某些内容除了一个空的 json 对象。