从URL获取React-Native JSON

时间:2018-07-31 07:36:51

标签: javascript json react-native fetch

希望我能对此问题有所帮助。

我正在使用React Native,并尝试从名为Feiertage-API(https://feiertage-api.de/)的API中获取一些数据,该数据基本上会返回(应该返回)德国的法定假日。

尝试在react native中使用fetch,会给我这样的响应:

Response {
   "_bodyBlob": Blob {
     "_data": Object {
       "blobId": "49C4AD4B-4648-44DB-AED7-7654EB78EF7A",
       "name": "api",
       "offset": 0,
       "size": 487,
       "type": "application/json",
     },
   },
   "_bodyInit": Blob {
     "_data": Object {
       "blobId": "49C4AD4B-4648-44DB-AED7-7654EB78EF7A",
       "name": "api",
       "offset": 0,
       "size": 487,
       "type": "application/json",
     },
   },
   "headers": Headers {
     "map": Object {
       "access-control-allow-origin": Array [
         "*",
       ],
       "content-type": Array [
         "application/json",
       ],
       "date": Array [
         "Tue, 31 Jul 2018 07:17:51 GMT",
       ],
       "server": Array [
         "nginx",
       ],
       "x-powered-by": Array [
         "PHP/7.0.31, PleskLin, PleskLin",
       ],
     },
   },
   "ok": true,
   "status": 200,
   "statusText": undefined,
   "type": "default",
   "url": "https://feiertage-api.de/api/?jahr=2019&nur_land=hb",
}

我的提取调用如下:

fetch('https://feiertage-api.de/api/?jahr=2019&nur_land=hb')
                .then(response => console.log(response) )
                .catch(error => console.log(error));

GET参数为: -jahr = 2019(对于我来说,这很明显) -nur_land = hb(一旦将截止值作为参数,这只会向我返回状态数据)

还可以通过添加get-parameter'callback = mycallbackname'来获取JSONP

如果尝试显示如下数据:     console.log(response.json())

我知道了:

 Promise {
      "_40": 0,
      "_55": null,
      "_65": 0,
      "_72": null,
   }

我期望看到的正是此处显示的数据-> https://feiertage-api.de/api/?jahr=2019&nur_land=hb

那么我如何能够从Response {....}中提取数据?

1 个答案:

答案 0 :(得分:3)

您需要在该响应上调用.json()方法。

fetch('https://feiertage-api.de/api/?jahr=2019&nur_land=hb')
            .then(response => response.json() )
            .then(data => console.log(data) )
            .catch(error => console.log(error));