首页 > 解决方案 > 使用 ASPjson 解析 JSON 对象

问题描述

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

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

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

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

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

标签: vbscriptasp-classic

解决方案


首先,我不会使用那个 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")

推荐阅读