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

使用JsonConverter提取JSON特定值时遭遇类型不匹配错误求助

解决JsonConverter提取AsAtDate时的类型不匹配问题

嘿,我一眼就瞅出你代码里的问题啦!先看看你给的JSON结构:Chocolate对象下面,Price是个纯数值(比如1.0),而AsAtDate是和Price平级的字段,根本不是Price的子属性。你最后一行代码错误地把AsAtDate当成了Price的下一级,这可不就触发类型不匹配错误了嘛——总不能从一个数字里再掏出来个属性吧!

修正后的完整代码

我不仅帮你改了出错的那行,还优化了之前的循环代码,让它更易懂:

result = objHTTP.responseText
Set parsedResult = JsonConverter.ParseJson(result)

' 遍历所有口味,把Price写入单元格
i = 3
For Each flavorKey In parsedResult("From")
    wsSheet0.Cells(i, 12) = parsedResult("From")(flavorKey)("Price")
    i = i + 1
Next

' 提取Chocolate的AsAtDate(修正了路径问题)
With parsedResult("From")("Chocolate")
    wsSheet0.Cells(11, 12) = .Item("AsAtDate")
    ' 要是你需要同时提取Chocolate的Price,也可以加这行
    ' wsSheet0.Cells(10, 12) = .Item("Price")
End With

核心修正要点

  • 路径错误修复:把parsedResult("From")("Chocolate")("Price")("AsAtDate")改成parsedResult("From")("Chocolate")("AsAtDate"),因为AsAtDate和Price都是Chocolate的直接子字段。
  • 变量名更直观:循环里的Item换成了flavorKey,一眼就能看出它是每个口味的名称(比如Chocolate、Lime)。
  • 代码更简洁:用With语句直接绑定Chocolate对象,不用重复写长长的路径,读起来更舒服。

这样改完之后,那个类型不匹配的错误应该就消失啦,你可以试试运行看看效果!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:20:46