我遇到了反应原生的JSON数据提取问题,here我需要的Json数据,我写了这段代码:
function getJsonData(){
return fetch('http://discaricaabusivadibyte.altervista.org/IngBioSched/PROFS.json')
.then((res)=> res.json())
.then((responseJson) => { return responseJson.lista})
.catch(error => console.log(error));
}
var resp=getJsonData();
console.log("faischifo");
console.log(resp.primoanno[0]);
日志:“5173 10207 E ReactNativeJS:undefined不是对象(评估'resp.primoanno [0]')”
如果我将responseJson.lista包装到console.log函数中,我会看到我的JSON字符串已格式化。但我无法将其分配给变量。请问你能帮帮我吗? 提前谢谢
答案 0 :(得分:0)
这里,getJsonData返回一个promise,所以你需要这样访问它。
getJsonData().then((data) => { console.log(data.primoanno[0] }
答案 1 :(得分:0)
正如@jaws指出的那样,你的函数getJsonData
会返回一个承诺,而不是responseJson.lista
的实际值。
这是一个可运行的代码段,您可能会注意到我更改了url
,因为您的原始链接不是https
,并且提取失败并出现以下错误:
混合内容:页面位于 ' ...' 是通过HTTPS加载的,但是请求了一个不安全的资源 ' ...&#39 ;. 此请求已被阻止;内容必须通过HTTPS提供。
function getJsonData() {
return fetch('https://gist.githubusercontent.com/mamodom/90a441ac8dababa7b68015a9b506fee5/raw/69e247f03b5732b359b7e258ecae47f8e078131a/foo.json')
.then(res => res.json())
.then(responseJson => responseJson.lista)
.catch(error => console.log("error", error));
}
getJsonData().then(data => {
console.log("faischifo");
console.log(data.primoanno[0]);
});