React native:如果 JSON 对象不存在,如何忽略它



我试图从打开的WeatherMap API中获取数据,但由于某种原因,这是一个动态的API。

要达到每三个小时的降雨量,您必须去:

json.list[0].rain['3h']

现在,如果下雪,"雨"变成

json.list[0].snow['3h']

我得到了这样的代码:

return fetch(url)
    .then(res => res.json())
    .then(json => ({
        temp1: json.list[0].main.temp,
        tempmin1: json.list[0].main.temp_mix,
        tempmax1: json.list[0].main.temp_max,
        weather1: json.list[0].weather[0].main,
        time: json.list[0].dt_txt,
        name: json.city.name,
        rainmillimeter1: json.list[0].rain['3h'],
        snowmillimeter1: json.list[0].snow['3h'],
        wind1: json.list[0].wind['speed'],
        vochtigheid1: json.list[0].main['humidity'],
        luchtdruk1: json.list[0].main['pressure'],

,但随后得到了未手持的承诺拒绝,并且不会加载任何API。有没有办法让它忽略雨或雪,如果不存在?

谢谢!

您可以使用三元操作员检查其中一个对象是否不存在:

rainmillimeter1: (json.list[0].rain) ? json.list[0].rain['3h'] : null,
snowmillimeter1: (json.list[0].snow) ? json.list[0].snow['3h'] : null,

另外,未经治疗的承诺拒绝通常是在承诺失败并且使用.catch((e) => {})处理错误时。您可能应该在任何时候都无法说明API。

更多详细信息:https://developer.mozilla.org/en-us/docs/web/javascript/reference/reference/global_objects/promise/catch

相关内容

  • 没有找到相关文章

最新更新