A痞子  2023-02-16 11:03 采纳率: 73.8%
浏览 63
已结题

asp如何发送多条json数组

asp如何发送多条json数组
我下面的代码可以正常发送一条数组

Set o = jsObject()

call dbstart
'================开始读取所有教室大类数据
k="0"
dSql="Select  ClassID,ClassName,ParentID From list14 where ParentID=0"
ors.Open dsql,oconn,1,1 
Do While Not oRs.Eof
Set o(k) = jsObject()
aa=ors("ClassName")
o(k)("name") = ors("Classname")
o(k)("id") = ors("Classid")
k=k+1
oRs.MoveNext
loop
ors.close
'================开始读取所有教室大类数据结束

'======数据读取结束,开始展示内容========

o.Kind = JSON_ARRAY'把对象转换为数组
o.Flush
set o=nothing

发送结果截图:

img

然后我想发送多条数组,改成如下代码:

Set o = jsObject()

call dbstart
'================开始读取所有教室大类数据
k="0"
dSql="Select  ClassID,ClassName,ParentID From list14 where ParentID=0"
ors.Open dsql,oconn,1,1 
Do While Not oRs.Eof
Set o(k) = jsObject()
aa=ors("ClassName")
o(k)("name") = ors("Classname")
o(k)("id") = ors("Classid")
k=k+1
oRs.MoveNext
loop
ors.close
'================开始读取所有教室大类数据结束

'======数据读取结束,开始展示内容========

o.Kind = JSON_ARRAY'把对象转换为数组
o.Flush
set o=nothing

Set o = jsObject()

call dbstart
'================开始读取所有教室大类数据
k="0"
dSql="Select  ClassID,ClassName,ParentID From list14 where ParentID=0"
ors.Open dsql,oconn,1,1 
Do While Not oRs.Eof
Set o(k) = jsObject()
aa=ors("ClassName")
o(k)("name") = ors("Classname")
o(k)("id") = ors("Classid")
k=k+1
oRs.MoveNext
loop
ors.close
'================开始读取所有教室大类数据结束

'======数据读取结束,开始展示内容========

o.Kind = JSON_ARRAY'把对象转换为数组
o.Flush
set o=nothing

发送结果截图:

img

这里就出现错误,直接显示字符串了。。。

  • 写回答

8条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-16 11:54
    关注

    基于Monster 组和GPT的调写:
    在重置对象 o 后覆盖了先前设置的数组。因此,只有最后一个数组被发送到您的目标,而前面的数组将被丢弃。

    为了解决这个问题,可以创建一个包含所有数组的主数组,并将每个数组作为其元素添加到该主数组中。

    Set o1 = jsObject()
    Set o2 = jsObject()
    Set oBigArray = jsObject()
    
    ' 第一个数组对象
    k="0"
    dSql="Select  ClassID,ClassName,ParentID From list14 where ParentID=0"
    ors.Open dsql,oconn,1,1 
    Do While Not oRs.Eof
        Set o1(k) = jsObject()
        aa=ors("ClassName")
        o1(k)("name") = ors("Classname")
        o1(k)("id") = ors("Classid")
        k=k+1
        oRs.MoveNext
    Loop
    ors.close
    
    ' 第二个数组对象
    k="0"
    dSql="Select  ClassID,ClassName,ParentID From list14 where ParentID=0"
    ors.Open dsql,oconn,1,1 
    Do While Not oRs.Eof
        Set o2(k) = jsObject()
        aa=ors("ClassName")
        o2(k)("name") = ors("Classname")
        o2(k)("id") = ors("Classid")
        k=k+1
        oRs.MoveNext
    Loop
    ors.close
    
    ' 合并两个数组对象为一个大数组对象
    oBigArray = Array(o1, o2)
    
    ' 将大数组对象转换为 JSON 字符串
    jsonStr = jsonConverter.ConvertToJson(oBigArray)
    
    ' 发送 JSON 字符串
    ' 在这里添加发送代码
    

    创建了一个主对象 mainObj,其中包含两个数组 arr1 和 arr2。每个数组都是以前所述的方式创建的,并使用 Add 方法将其添加到主对象中。最后,我们将 mainObj 本身转换为一个数组,并通过 Flush 方法将其发送到目标。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 赞助了问题酬金15元 2月16日
  • 修改了问题 2月16日
  • 展开全部

悬赏问题

  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
  • ¥15 svpwm波形异常求解答
  • ¥15 STM32——硬件IIC从机通信代码实现
  • ¥15 关于GRSL投稿的疑问
  • ¥15 微生物组数据分析--微生物代谢物
  • ¥30 求一跃动小子保卫主公Java算法实现
  • ¥15 地图软件开发技术答疑(api, 地点获取,外观样式)
  • ¥20 物理远程控制麦克风使用问题