【问题标题】:JSON Response in ASPASP 中的 JSON 响应
【发布时间】:2017-06-20 03:54:05
【问题描述】:

我是一名 PHP 开发人员,对 asp 一无所知。我正在用 PHP 开发一个门户网站,需要将 ajax 发布到一个 asp 页面(外部服务器),它发送的响应是这样的:

OK|some_id|some_name|some_id|0|1|||some_name|some_email|some_address|some_street|some_city|some_zipcode|some_country|date|0|-

数值用“|”隔开,处理起来太复杂了。

我可以访问 asp 代码。代码如下所示。

Set con01 = Server.CreateObject("ADODB.Connection")
con01.Open "some_db"
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "some_query"
rs.Open sql,con01,1,1,1

If NOT rs.EOF THEN
    Response.Write "OK" & "|"
    Response.Write rs("memTableUniID") & "|"
    Response.Write rs("memID") & "|"
    Response.Write rs("memPassword") & "|"
    Response.Write rs("webMaster") & "|"
    Response.Write rs("belongsGroupID") & "|"
    Response.Write rs("prefix") & "|"
    Response.Write rs("foreName") & "|"
    Response.Write rs("familyName") & "|"
    Response.Write rs("eMail") & "|"
    Response.Write rs("homeAdd") & "|"
    Response.Write rs("homeCity") & "|"
    Response.Write rs("state") & "|"
    Response.Write rs("zipPostal") & "|"
    Response.Write rs("country") & "|"
    Response.Write rs("registerDate") & "|"
    Response.Write rs("startFrom1to3") & "|"
    Response.Write rs("oldSN") & "|"
    Response.Write rs("nameOnCert") & "|"

    Set rsSub = Server.CreateObject("ADODB.Recordset")
    sql2 = "another_query"
    rsSub.Open sql2,con01
    If NOT rsSub.EOF THEN
        Response.Write "MOK" & "|"
        Response.Write rsSub("canAccess") & "|"
        Response.Write rsSub("usedCode") & "|"
        Response.Write rsSub("usedTimes") & "|"
        Response.Write rsSub("canReg") & "|"
        Response.Write rsSub("usedReg")
    Else
        Response.Write "MIS"
    End If
    rsSub.Close
Else
    Response.Write "RNF"
End If

rs.Close
con01.Close

如何更改对 JSON 对象的响应,或者如果在 asp 中更改太复杂,是否有一种简单的方法可以使用 javascript 将响应字符串解析为 JSON?

【问题讨论】:

  • 要在 ASP 端生成 JSON,您将创建一个具有适当属性名称的对象,然后使用与 JSON.stringify() 等效的 .NET。

标签: javascript php asp.net json


【解决方案1】:

一种选择是采用当前的响应,通过“|”拆分它使用正则表达式preg_split,然后对结果数组进行json编码。

var myString = "OK|some_id|some_name|some_id|0|1|||some_name|some_email|some_address|some_street|some_city|some_zipcode|some_country|date|0|-";

var myArray = myString.split(/\|/);

var myJson = JSON.stringify(myArray);

console.log(myJson);

编辑: 下面的代码是 PHP,因为您将其标记为 PHP。我错过了您无法在 PHP 中执行此操作的事实。这个想法是一样的,但是用 JavaScript 来做

$string = "OK|some_id|some_name|some_id|0|1|||some_name|some_email|some_address|some_street|some_city|some_zipcode|some_country|date|0|-";

$array = preg_split("/\|/", $string);

$json = json_encode($array);

print_r($json);

【讨论】:

  • 嗨,卢克,感谢您的解决方案。我正在寻找更多的 asp 解决方案,因为我可以轻松地处理来自 PHP 端的响应。但我想要一个长远的解决方案,它也可以帮助未来的开发人员。我的同事通过更改asp代码解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 2011-08-19
相关资源
最近更新 更多