gpt4 book ai didi

json - ASP 经典 : Iterating a json2. js 对象

转载 作者:行者123 更新时间:2023-12-04 05:45:01 25 4
gpt4 key购买 nike

我在 ASP Classic 中得到一个 JSON 结果,如下所示:

<script language="JScript" runat="server" src="json2.js"></script>
<%
Response.ContentType = "text/html"

Dim HttpReq
Dim Diamond
Set HttpReq = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
HttpReq.open "GET", "http://url.com?id=" & Request.QueryString("id"), False
HttpReq.send

res = HttpReq.responseText
Set res = JSON.parse(res)
%>

它有效。

假设 JSON 结果如下所示:
res = {
gallery: {
image1: { img: 'source url', thumb: 'source url' },
image2: { img: 'source url', thumb: 'source url' },
image3: { img: 'source url', thumb: 'source url' }
},
another_param1: 'foo',
another param2: 'bar',
...
}

然后我想迭代画廊对象,而不是在 JScript 中,而是在 VBScript 中。

我该怎么做?

非常感谢您提前。

最佳答案

如果确实需要在 VBScript 中枚举对象的属性,则需要将该对象转换为字典。这是一个简单的函数,它将接受一个 JScript 对象并返回 Scripting.Dictionary :

<script runat="server" language="javascript">

function JScriptObjectToDictionary(o)
{
var dict = new ActiveXObject("Scripting.Dictionary")

for (var prop in o)
{
if (o.hasOwnProperty(prop))
{
dict.add(prop, o[prop]);
}
}

return dict;
}
</script>

有了这个功能出现在您的页面中,您现在可以转换 gallery字典的属性:
 res.gallery = JScriptObjectToDictionary(res.gallery)

然后你可以迭代为:
 For Each key in res.gallery
Response.Write key & ": " & res.gallery(key).img & "<br />"
Next

话虽如此,值得指出的是,将属性命名为像 image1、image2 这样的系列是一个糟糕的选择。如果 JSON 将画廊定义为一个简单的数组而不是一个对象会更好。如果您有能力影响 JSON 设计,您应该要求对其进行更改。

关于json - ASP 经典 : Iterating a json2. js 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10783134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com