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日
  • 展开全部

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效