JSON数据转换为Javascript变量

时间:2015-01-23 20:52:07

标签: javascript php mysql json

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

我的JSON OBJECT就像这样

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

该代码的

 $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

2 个答案:

答案 0 :(得分:1)

由于您的JSON数据是一个对象数组,因此您需要访问其索引:

obj[0].name

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

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

然后你的JSON看起来像这样:

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

因此obj.name会起作用,它不会是未定义的。

答案 1 :(得分:1)

试试这样:

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