使用 ASPjson 解析 JSON 对象

问题描述

在经典 ASP (VBScript) 中,我可以使用 request.form 执行 POST 的一般请求,或者使用 request.querystring 执行 GET 请求,这会给我发送的整个字符串。

但是,我现在需要从客户端位置接收 JSON 对象。 这是它可能的外观示例:

{
  "firstName": "John","lastName" : "Smith","age"      : 25
}

如何请求整个对象(然后我将使用 ASP.JSON 对其进行解析)?

PS:我知道我可以在客户端将 JSON 对象转换为字符串,然后在服务器端解析为文本,但这感觉像是一种变通方法,而不是直接的解决方案。

解决方法

首先,我不会使用那个 AspJson,但是这个:https://github.com/rcdmk/aspJSON

其次,您收到的不是对象本身,而是包含“json 对象的字符串版本”的请求。在这种情况下,可能是字节,这就是为什么您要先进行 BinaryRead 并将其转换为正文。

然后您将能够使用您想要的任何解析器来解析正文。

现在让我们试着给你一个示例代码:

<%Response.LCID = 1033%>
<!--#include file="__jsonObject.class.v3.8.1.asp" -->

Set UTF8Enc = CreateObject("System.Text.UTF8Encoding") ' .NET COMPONENT,required on the server app pool
Set JSON = new JSONobject

lngBytesCount = Request.TotalBytes
request_body = UTF8Enc.GetString(Request.BinaryRead(lngBytesCount))

Set request_json = JSON.parse(request_body)

first_name = request_json("firstName")
last_name = request_json("lastName")
age = request_json("age")