【问题标题】:How to send back data from a JSON request如何从 JSON 请求发回数据
【发布时间】:2011-03-07 15:17:58
【问题描述】:

我有一个现有的 WSDL,它使用 SOAP 将信息返回到远程设备。但是,我正在使用不支持 SOAP 的 Android 编写一个新应用程序,因此我无法使用现有的 WSDL,并且不得不编写一个新应用程序,该应用程序从 Android 应用程序中查找查询字符串并以 JSON 格式返回数据包。我已经对接收数据的模块进行了编码,但我不确定如何以 JSON 格式发回数据,是否有人在 VB.Net 或 C# 中有任何示例,它告诉我如何将数据返回给 JSON 请求者?

【问题讨论】:

    标签: c# vb.net web-services json


    【解决方案1】:

    您会很高兴知道.NET 使用DataContractJsonSerializer 使这变得非常简单。这是一些从 HTTP 处理程序中提取的代码。 MyDataType 是您的可序列化类的名称。

    context.Response.ContentType = "application/json";
    MyDataType someObject = new MyDataType();
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(MyDataType));
    using (MemoryStream ms = new MemoryStream())
    {
        ser.WriteObject(ms, data);
        ms.Seek(0, SeekOrigin.Begin);
    
        StreamReader sr = new StreamReader(ms);
        string json = sr.ReadToEnd();
        Trace("Returning JSON:\n" + json + "\n");
        context.Response.Write(json);
    }
    

    This is 我不得不这样做时使用的主要博客文章。

    【讨论】:

    • 这真的很有帮助,谢谢。正如我所提到的,我以前没有使用过 Json,您博客中的代码真的很有帮助。我是否认为我可以从我的 Android 应用程序中调用我的模块,例如“myweb.com.default.ascx?memid=333”,然后在页面加载中处理查询字符串并使用类似于上面的代码返回结果数据?
    • 您可以使用 ascx,但我通常会使用 HTTP 处理程序(ASMX 文件)来处理这类事情,因为它们更轻量级。您可以使用 context.Request.Params("memid") 访问查询字符串,然后使用上面的代码将输出写入您的客户端。
    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 2015-06-11
    • 2022-01-23
    相关资源
    最近更新 更多