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

在aspJSON中如何从JSON数组内获取指定属性值?

问题排查与修复步骤

1. 先修正测试JSON的格式错误

你当前的testdata不符合标准JSON规范,aspJSON解析非标准JSON会直接失败,需要做三处修改:

  • 所有键名、字符串值必须用双引号包裹,不能用单引号
  • 空值用JSON标准的null,而非Python语法的None
  • VBScript字符串中的双引号需要用两个双引号转义

修正后的testdata示例:

testdata = _
"{""payments"":" & _
"  [{""status"": ""succeeded"", " & _
"    ""in_store_payment_type"": null, " & _
"    ""refunds"": [], " & _
"    ""created_at"": ""2021-10-20T17:23:41-0400"", " & _
"    ""amount_paid_display"": ""53.00"", " & _
"    ""initial_amount_paid_display"": ""53.00"", " & _
"    ""currency"": ""usd"", " & _
"    ""initial_amount_paid"": 5300, " & _
"    ""pk"": 75552720, " & _
"    ""type"": ""affiliate"", " & _
"    ""amount_paid"": 5300" & _
"  }]" & _
"}"

2. 修正JSON解析与属性访问语法

你使用的json.parse()和get(0)都不是aspJSON库的标准用法,该库的标准写法如下:

<%@ LANGUAGE="VBSCRIPT" %>  
<!--#include file="aspJSON.asp" -->
<%
' 此处替换为你读取testdata的逻辑,testdata用上面修正后的格式
Set oJSON = New aspJSON
oJSON.loadJSON(testdata)

' 先校验是否解析出错
If oJSON.ErrNumber <> 0 Then
  Response.Write "解析错误:" & oJSON.ErrDescription
  Response.End
End If

' 读取目标属性,数组索引从0开始
Response.Write "Data->" & oJSON.data("payments")(0).data("status")
%>

如果你使用的是新版aspJSON库,也可以用更简洁的点语法访问:

Response.Write "Data->" & oJSON.payments(0).status

3. 异常校验建议

如果修改后还是输出异常,可以先输出payments数组长度校验解析是否正常:

Response.Write "payments数组长度:" & oJSON.data("payments").count

如果输出为0说明JSON格式仍有错误,可逐行核对引号、逗号、括号等符号是否匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:45:07