.net 写的webservice如何返回json数据

fruankn 2012-11-13 05:47:05
如何 .net 写的webservice如何返回json数据 ,求大神指教
...全文
16939 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
华芸智森 2014-04-10
  • 打赏
  • 举报
回复

    ''' <summary>
    ''' DataTable to JSON字符串
    ''' 前台可直接转换成二维数组。
    ''' </summary>
    ''' <param name="source"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function DataTableToJsonArray(source As DataTable) As String
        If (source.Rows.Count = 0) Then Return ""
        Dim sb As New StringBuilder("[")
        Dim tChar As String = """"
        For Each row As DataRow In source.Rows
            sb.Append("[")
            For i As Int32 = 0 To source.Columns.Count
                sb.Append(tChar & row(i).ToString() + tChar + ",")
            Next
            sb.Remove(sb.Length - 1, 1)
            sb.Append("],")
        Next
        sb.Remove(sb.Length - 1, 1)
        sb.Append("]")
        Return sb.ToString()

    End Function

    ''' <summary>
    ''' 返回前台用的 JSON 数据.
    ''' </summary>
    ''' <param name="dt"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function DataTableToJson(dt As DataTable,
                                           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

            JsonString.Append("{")
            JsonString.Append(tChar & TableName & tChar & ":[")
            For i As Int32 = 0 To dt.Rows.Count
                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 & BaseDBHelper.ConvData.ToStr(dt.Rows(i)(j)) & tChar & ",")
                    ElseIf (j = dt.Columns.Count - 1) Then
                        JsonString.Append(tChar & dt.Columns(j).ColumnName.ToString() & tChar & ":" & tChar & BaseDBHelper.ConvData.ToStr(dt.Rows(i)(j)) & tChar)
                    End If
                Next
                If (i = dt.Rows.Count - 1) Then
                    JsonString.Append("}")
                Else
                    JsonString.Append("},")
                End If
            Next
            JsonString.Append("]}")
            Return JsonString.ToString()
        Else
            Return Nothing
        End If
    End Function
lfl_jeetoon 2014-03-31
  • 打赏
  • 举报
回复
参数少的话,用楼上的方法可以。如果参数太多,就有些麻烦。需要用Post一个规范的报文比较好。
风之影子 2014-03-31
  • 打赏
  • 举报
回复
如何 .net 写的webservice如何返回json数据 ,求大神指教 这个问题个人理解为:数据的传输格式选择。 问题本身不存在于如何返回数据,而在于返回那种格式数据。 不管返回什么,在返回之前,都是C端与W端各自的工作。
wangweimutou 2013-11-16
  • 打赏
  • 举报
回复
这个网上有很多吧,JavaScriptSerializer 这个就不错 wcf中我就用DataContractJsonSerializer 类 操作json类型数据
  • 打赏
  • 举报
回复
比如说你可以写
var result = new WebClient().DownloadString("http://www.abc.com/site1/service1.ashx?xx=2342");
就得到了返回的json字符串。
  • 打赏
  • 举报
回复
这是很坑爹的事情,使用沉重的RPC调用,却来偷运轻量的json。 你只要随便提供一个轻量级的网页请求,例如 http://www.abc.com/site1/service1.ashx?xx=2342 就行了。 如果你直接控制json,那么web service可以休矣。 10年前web service火起来,因为有了统一的协议用于自动发现服务,和(微软)自动产生客户端代理class。这些都被json轻松地给消除了。
newtee 2013-11-16
  • 打赏
  • 举报
回复
其实json只是一种contenttype(application/json) 参考:http://baike.baidu.com/view/1547292.htm try
public class WebService1 : System.Web.Services.WebService
    {
        [WebMethod]
        [ScriptMethod(UseHttpGet=true ,ResponseFormat = ResponseFormat.Json)]
        public void HelloWorld()
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            Context.Response.Clear();
            Context.Response.ContentType = "application/json";           
            HelloWorldData data = new HelloWorldData();
            data.Message = "HelloWorld";
             Context.Response.Write(js.Serialize(data));


        }
    }

    public class HelloWorldData
    {
       public String Message;
    }
syd168 2013-10-06
  • 打赏
  • 举报
回复
Context.Response.Write(JSON字符串);
Context.Response.End();
羽毛之家 2012-11-23
  • 打赏
  • 举报
回复
webservice返回的数据包含头文件的。你可以返回字符串,这个字符串是JSON序列化的。 客户端接收这个字符串后进行反序列化。
诺维斯基 2012-11-16
  • 打赏
  • 举报
回复
其实返回一个json格式字符串,在前台转换一下就行。可以用jquery的$.parseJSON()
宝_爸 2012-11-16
  • 打赏
  • 举报
回复
如果js调用,直接用Ajax Enabled WCF Service模板。
flexstruts 2012-11-16
  • 打赏
  • 举报
回复
首先 json 是一个字符串,其次请参考如下文档来实现。 http://www.cnblogs.com/xfrog/archive/2010/04/07/1706754.html
SocketUpEx 2012-11-13
  • 打赏
  • 举报
回复
json不就是String嘛
暖枫无敌 2012-11-13
  • 打赏
  • 举报
回复
json序列化和反序列化
卧_槽 2012-11-13
  • 打赏
  • 举报
回复
using System.Web.Script.Serialization; JavaScriptSerializer serializer = new JavaScriptSerializer(); string obj = Serializer.Serialize(.netobject);

12,162

社区成员

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

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