不接收来自JSON源

时间:2016-02-08 08:50:29

标签: json cloudpebble pebble-js

我正在尝试制作一个从JSON URL读取数据的Pebble应用程序。

然而,无论我做什么,我似乎无法使数据出现在应用程序上。

在以下位置输入此代码时

console.log(data.contents.AvailableBal);
console.log(data.contents.CurrentBal);

我希望在日志中得到一个结果,这会有所帮助,但我只能得到:

[PHONE] pebble-app.js:?: None
[PHONE] pebble-app.js:?: None

在模拟器中查看应用程序时,数据应该是两个值,请说“未定义”。

我的代码如下。任何帮助都会很棒!

var UI = require('ui');
var ajax = require('ajax');

var splashCard = new UI.Card({
  title: "Please Wait",
  body: "Downloading..."
});
splashCard.show();

ajax(
  {
  url: 'https://djkhaled.xyz/balance.json',
  type: 'json'
  },
function(data) {
  console.log(data.contents.AvailableBal);
  console.log(data.contents.CurrentBal);
var main = new UI.Card({
    title: 'Balances',
    body: 'Available Balance: ' + data.contents.AvailableBal +
'\nCurrent Balance: ' + data.contents.CurrentBal
});
  splashCard.hide();
  main.show();
  }
);

1 个答案:

答案 0 :(得分:1)

这是你的JSON,

{
    "contents": [{
        "AvailableBal": "$0.00 CR",
        "CurrentBal": "$0.00 CR"
    }]
}

您无法直接访问data.contents.AvailableBal,因为AvailableBal不在contents内。 contents有一个数组  此数组的第一个对象(索引0处的对象)包含具有AvailableBalCurrentBal键的对象。

我不是JavaScript开发人员,但可能会回答这个问题,

var main = new UI.Card({
    title: 'Balances',
    body: 'Available Balance: ' + data.contents[0].AvailableBal +
'\nCurrent Balance: ' + data.contents[0].CurrentBal
});