VB.NET webservice写的json格式APP客户端无法读出

fqcotory 2016-04-25 03:56:58
我用VB.NET 写的webservice调用下面函数,然后调用函数DataTableToJson转换为JSON格式,但是app端读取出来说还是XML格式?但是我本地调试看了下返回结果:{"Count":"1","Data":[{"ID":"2","Guid":"310b6649ea9c4139a062ea372c16eadc","MenuGuid":"2d3eeb4efb524e0371f8b6247076c918","UserGuid":"0c3633694fc64792811ea5494f838f7c","Text":"春风吹","Image":"http://www.XXX.com/images/20164251423530.jpg","StartTime":"2016/4/25 14:23:53"}]}
就是JSON格式哒
搞不明白了,哪位大侠指点下?


Public Function GetGuide() As String
Dim TableName, Where As String
TableName = "a"
Where = " 1=1 "
Dim mydb As WanXi.Db.IWanxiDb
mydb = New WanXi.Db.MsSQLDb(conn, TableName)

Dim sqlsql As String = ""

sqlsql = "select ID,Guid,MenuGuid,UserGuid,Text,Image,StartTime from AppSetUp where MenuGuid='2d3eeb4efb524e0371f8b6247076c918' order by StartTime desc "
Dim dt As Data.DataTable = mydb.FindSQL(sqlsql)
Context.Response.Charset = "UTF-8"
Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8")
Context.Response.Write(DataTableToJson(dt, TableName))
Context.Response.End()
End Function


Public Shared Function DataTableToJson(ByVal dt As DataTable, ByVal TableName As String) As String
Dim tChar As String = """"
If (Not dt Is Nothing AndAlso dt.Rows.Count > 0) Then

Dim JsonString As New StringBuilder()
If TableName.Length = 0 Then TableName = dt.TableName

Dim i As Integer = 0
Dim dr As Data.DataRow
JsonString.Append("{")
JsonString.Append("""Count"":" & tChar & dt.Rows.Count & tChar & ",")
JsonString.Append("""Data"":" & "[")
For Each dr In dt.Rows
JsonString.Append("{")
For j As Int32 = 0 To dt.Columns.Count
If (j < dt.Columns.Count - 1) Then
JsonString.Append(tChar & dt.Columns(j).ColumnName.ToString() & tChar & ":" & tChar & dt.Rows(i)(j).ToString.Trim & tChar & ",")
ElseIf (j = dt.Columns.Count - 1) Then
JsonString.Append(tChar & dt.Columns(j).ColumnName.ToString() & tChar & ":" & tChar & dt.Rows(i)(j).ToString.Trim & tChar)
End If
Next
If (i = dt.Rows.Count - 1) Then
JsonString.Append("}")
Else
JsonString.Append("},")
End If
i = i + 1
Next
JsonString.Append("]}")
Return JsonString.ToString()
Else
Return Nothing
End If
End Function


...全文
194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fqcotory 2016-04-26
  • 打赏
  • 举报
回复
感谢,搞定,结贴
  • 打赏
  • 举报
回复
是的,其实ws在浏览器里可以看到对应的xml格式报文,就是在你调用按钮那里
fqcotory 2016-04-25
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
webservice天生返回的是xml…… 你的json只是xml的内容部分…… 如果你真的只希望返回json给app,要么写ashx,要么用webapi……
哦 相当于我在本地调试 看到的不一定是这个格式?还是要用ashx或者webapi?
  • 打赏
  • 举报
回复
你本地的是通过wsdl代理类进行访问,实际传输的内容都已经被封装处理了,最终你直接看到的就是string部分了
  • 打赏
  • 举报
回复
webservice天生返回的是xml…… 你的json只是xml的内容部分…… 如果你真的只希望返回json给app,要么写ashx,要么用webapi……

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧