2016-09-22 4 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オブジェクト(TypeError:既に読み込まれています)の応答で.json()を呼び出すエラーが私から出ていることがわかりました。応答のために多くのおかげで、私は間違いなくそのconsole.dump()を将来使用します。 – SunnyBCC

関連する問題