2016-09-22 90 views
0

我對NativeScript和JSON有點新興,並且在訪問JSON文件中的數據時遇到了一些問題。現在我只是想記錄一些數據。訪問JSON數據NativeScript

這裏是我的視圖模型代碼:

var config = require("../../shared/config"); 
var fetchModule = require("fetch"); 
var ObservableArray = require("data/observable-array").ObservableArray; 

function StandingsListViewModel(items) { 
var viewModel = new ObservableArray(items); 

viewModel.load = function() { 
    var url = config.apiURI + "getStandings.cfm?weekid=397"; 
    console.log(url); 
    return fetch(url) 
    .then(handleErrors) 
    .then(function(response) { 
     console.log(response.json()); 
     return response.json(); 
    }) 
    .then(function(data) { 
     console.log("hit"); 
     data.Result.forEach(function(standing) { 
      console.log(standing.place); 
      console.log(standing.username); 
     }); 
    }); 
}; 

return viewModel; 
} 

function handleErrors(response) { 
if (!response.ok) { 
    console.log(JSON.stringify(response)); 
    throw Error(response.statusText); 
} 
return response; 
} 

module.exports = StandingsListViewModel; 

這我引用JSON文件:

{ 
    "hiding": 0, 
    "lastupdate": 1474481622, 
    "refresh": 600, 
    "showmax": 0, 
    "showtie": 1, 

    "displayColumns" : [ 
     "Points" 
     ,"Wins" 
     ,"TieDif" 

    ], 
    "users" : [ 

     { 
      "memberid" : 910089, 
      "username" : "THE DAILY ROUTINE", 
      "last_entry" : "1473446820", 
      "place" : "1", 
      "record" : [ 
      "1.0" 
      ,"1" 
      ,"10.0" 

      ] 
     } , 
     { 
      "memberid" : 2234158, 
      "username" : "MR. MANAGER", 
      "last_entry" : "1473277680", 
      "place" : "2", 
      "record" : [ 
      "1.0" 
      ,"1" 
      ,"26.0" 

      ] 
     } 
    ] 
} 

我知道這可能是一件很基本的,任何幫助表示讚賞。

回答

2

可能發生了什麼是你正在獲取數據,但你沒有記錄它,所以你可以看到它。你正在做的:

console.log(response.json()); 

嘗試做

console.dump(response.json()); 

轉儲輸出JSON,日誌中記錄的字符串。所以要麼將你的json串聯起來,要麼使用console.dump。

如果這不起作用,請嘗試設置標題。

return fetchModule.fetch(config.apiUrl + "getStandings.cfm?weekid=397", { 
    method: "GET", 
    headers: { 
     "Content-Type": "application/json", 
    } 
}) 
.then(handleErrors) 
.then(function(response) { 
    return response.json(); 
}) 
.then(function(data) { 
    console.dump(data) 
    return data; 
}); 
+0

我發現這個錯誤來自我調用.json()已經是JSON對象(TypeError:已讀)的響應。儘管如此,非常感謝答覆,我將來肯定會使用console.dump()。 – SunnyBCC