【问题标题】:JSON Data into Javascript variablesJSON 数据转换成 Javascript 变量
【发布时间】:2015-01-23 20:52:06
【问题描述】:

我使用 JSON 生成值创建 javascript 图表(我使用 chart.js)。到目前为止,我已经从 PHP 生成了 JSON 对象。现在我想在图表中分配这些值。

我的 JSON 对象是这样的

[{"name:""John","first:""100","second:""300","third:""200"}]

因为 PHP 代码是

 $row = mysqli_fetch_array($result);
    $response = array('name' => $row['username'],
    'first' => $row['first'],
    'second' => $row['second'],
    'third' => $row['third'],
);

    $responses[]=$response;

上面的代码没有问题。

我想在下面的代码中分配这些检索到的值。 (这是为 CHART.JS 准备的)

var pieData = [
        {
          value: "[here]",// values goes to here
          color:"#F7464A",
          highlight: "#FF5A5E",
          label: name
        },
        {
          value: 50,
          color: "#46BFBD",
          highlight: "#5AD3D1",
          label: "Green"
        },
        {
          value: 100,
          color: "#FDB45C",
          highlight: "#FFC870",
          label: "Yellow"
        },

      ];

var ctx = document.getElementById("chart-area").getContext("2d");
        window.myPie = new Chart(ctx).Pie(pieData);

我试过这样的

obj = JSON.parse(values);
value: obj.name, //but this didnt work
color:"#F7464A",
highlight: "#FF5A5E",
label: name

即使我尝试了alert (obj.name);,我也得到了Undefined

【问题讨论】:

  • 我假设 json 是为这个问题手动输入的?它有一些错别字。
  • 您最底部的 javascript 看起来也有点……无效。就像你错过了什么一样。
  • 您的 JSON 表示一个数组,因此,obj 将包含一个数组,其中包含一个作为对象的单个项目。可能在后端错误地返回数据?还是可以有多个?
  • console.log(obj) 会向您显示您正在使用的确切结构。你可能想要obj[0].name

标签: javascript php mysql json


【解决方案1】:

因为你的JSON数据是一个对象数组,你需要访问它的索引:

obj[0].name

但如果您考虑一下,如果您希望有一条记录,您可以直接对这一行进行编码。

$row = mysqli_fetch_array($result);
json_decode($row);

那么您的 JSON 将如下所示:

{"name:""John","first:""100","second:""300","third:""200"}

因此obj.name 可以工作,它不会是未定义的。

【讨论】:

    【解决方案2】:

    试试这样:

    obj = JSON.parse(values);
    value: obj[0].name, 
    color:"#F7464A",
    highlight: "#FF5A5E",
    label: name
    

    【讨论】:

    • @CadeLewis 请接受答案,如果它对你有用:) 提前谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    相关资源
    最近更新 更多