You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.Net读取OpenWeatherMap API的JSON数据时无法获取description与icon字段的问题

解决OpenWeatherMap JSON中weather数组字段提取问题

嘿,我一眼就看出问题所在啦——你没法提取weather数组里的description和icon,是因为**weather是一个JSON数组(用[]包裹)**,而你当前的代码直接把它当成普通JSON对象来访问了,自然拿不到数据。

问题分析

看你提供的API响应,weather是一个包含单个对象的数组:

weather: [
    {id: 802, main: "Clouds", description: "scattered clouds", icon: "03d"}
]

要访问数组里的元素,你需要指定索引(这里是0,因为数组从0开始计数),再去读取对应的字段。

修复后的代码

把你Try块里的两行代码替换成下面的写法:

' 访问weather数组的第一个元素,再提取description和icon
description = obj.SelectToken("weather[0]").SelectToken("description")
iconid = obj.SelectToken("weather[0]").SelectToken("icon")

另外,我还发现一个小拼写错误:你定义的变量是windspeedMPS,但代码里写的是windspeddMPS(多了一个d),这个也得修正,不然风速字段也会读取失败:

windspeedMPS = obj.SelectToken("wind").SelectToken("speed")

可选写法(更直观的数组访问)

你也可以用JObject的索引器语法来访问,效果是一样的:

description = obj("weather")(0)("description").ToString()
iconid = obj("weather")(0)("icon").ToString()

这种写法更明确地体现了“数组→元素→字段”的层级关系。

这样修改后,你就能成功提取到天气描述和图标ID啦!

内容的提问来源于stack exchange,提问作者Peymanrad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 21:34:07