问题:

我将结果内容用字符串拼接成Json数据并返回的时候,会在结果前面添加xml头部,结果如下。

  1. <span ><string xmlns="http://tempuri.org/">
  2. {"data":[{"batchId":"B001","produceOrderId":"", "produceFactory":"","addTime":"2014/7/8 15:09:00","remark":"","parentId":""},{"batchId":"B002","produceOrderId":"生产订单2", "produceFactory":"测试公司1","addTime":"2014/7/8 8:00:00","remark":"","parentId":"B001"},{"batchId":"B003","produceOrderId":"生产订单3", "produceFactory":"测试公司2","addTime":"2014/7/8 0:00:00","remark":"","parentId":"B001"},{"batchId":"B004","produceOrderId":"生产订单4", "produceFactory":"测试公司3","addTime":"2014/7/8 0:00:00","remark":"","parentId":"B002"},{"batchId":"B005","produceOrderId":"生产订单5", "produceFactory":"测试公司4","addTime":"2014/7/8 0:00:00","remark":"","parentId":"B004"},{"batchId":"B006","produceOrderId":"生产订单6", "produceFactory":"外包公司1","addTime":"2014/7/8 0:00:00","remark":"","parentId":"B005"}]}
  3. </string></span>

产生如上数据的Webservice接口代码如下。

  1. <span >  [WebMethod]
  2. public String GetQrCodeList(String qrCode)
  3. {
  4. return PriGetQrCodeList(qrCode);
  5. }
  6. /// <summary>
  7. /// 获取关联的二维码树结构
  8. /// </summary>
  9. /// <param name="qrCode">产品二维码</param>
  10. /// <returns></returns>
  11. private String PriGetQrCodeList(String qrCode)
  12. {
  13. try
  14. {
  15. String sfull = "{{\"data\":[{0}]}}";
  16. String spart = "{{\"batchId\":\"{0}\",\"produceOrderId\":\"{1}\", \"produceFactory\":\"{2}\",\"addTime\":\"{3}\",\"remark\":\"{4}\",\"parentId\":\"{5}\"}}";
  17. String sData = "";
  18. DataTable dt = bll.GetQrCodeList(qrCode);
  19. if (dt == null || dt.Rows.Count == 0) return "";
  20. for (int i = 0; i < dt.Rows.Count; i++)
  21. {
  22. sData += (String.Format(spart,
  23. dt.Rows[i]["BatchId"].ToString(),
  24. dt.Rows[i]["ProduceOrderId"].ToString(),
  25. dt.Rows[i]["ProduceFactory"].ToString(),
  26. dt.Rows[i]["AddTime"].ToString(),
  27. dt.Rows[i]["Remark"].ToString(),
  28. dt.Rows[i]["ParentId"].ToString()) + ",");
  29. }
  30. return String.Format(sfull, sData.TrimEnd(','));
  31. }
  32. catch (Exception)
  33. {
  34. return "";
  35. }
  36. }</span>

解决方案:

改变数据的返回方式,用 Context.Response.Write代替return 语句,修改GetQrCodeList方法如下即可返回正确的Json格式数据。

  1. <span >    [WebMethod]
  2. public void GetQrCodeList(String qrCode)
  3. {
  4. Context.Response.Charset = "GB2312"; //设置字符集类型
  5. Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
  6. Context.Response.Write(PriGetQrCodeList(qrCode));
  7. Context.Response.End();
  8. }</span>

返回结果如下:

  1. <span >{"data":[{"batchId":"B001","produceOrderId":"", "produceFactory":"","addTime":"2014/7/8 15:09:00","remark":"","parentId":""},{"batchId":"B002","produceOrderId":"生产订单2", "produceFactory":"测试公司1","addTime":"2014/7/8 8:00:00","remark":"","parentId":"B001"},{"batchId":"B003","produceOrderId":"生产订单3", "produceFactory":"测试公司2","addTime":"2014/7/8 0:00:00","remark":"","parentId":"B001"},{"batchId":"B004","produceOrderId":"生产订单4", "produceFactory":"测试公司3","addTime":"2014/7/8 0:00:00","remark":"","parentId":"B002"},{"batchId":"B005","produceOrderId":"生产订单5", "produceFactory":"测试公司4","addTime":"2014/7/8 0:00:00","remark":"","parentId":"B004"},{"batchId":"B006","produceOrderId":"生产订单6", "produceFactory":"外包公司1","addTime":"2014/7/8 0:00:00","remark":"","parentId":"B005"}]}</span>

Webservice返回json数据格式的更多相关文章

  1. MVC返回JSON数据格式书写方式

    返回json数据格式,多个返回值加,隔开 [Route("api/users/web")] //如果不加这个路由请这样调用:/api/users/web?schoolname=十五 ...

  2. WebService返回json格式数据供苹果或者安卓程序调用

    1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...

  3. ASP.net jQuery调用webservice返回json数据的一些问题

    之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...

  4. jQuery调用WebService返回JSON数据

    相信大家都比较了解JSON格式的数据对于ajax的方便,不了解的可以从网上找一下这方面的资料来看一下,这里就不多说了,不清楚的可以在网上查一下,这里只说一下因为参数设置不当引起的取不到返回值的问题. ...

  5. Mui.ajax请求服务器正确返回json数据格式

    ajax: mui.ajax('http://server-name/login.php',{ data:{ username:'username', password:'password' }, d ...

  6. 转:spring mvc返回json数据格式

    转:http://www.cnblogs.com/ssslinppp/p/4675495.html <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: ...

  7. asp.net webservice返回json问题

    使用jQuery $.ajax方法请求webservice 一.方法返回值为string,将json格式的字符串返回 设置contentType为"application/json;char ...

  8. 亲测 asp.net 调用 webservice返回json

    前端脚本 $("#sure").click(function () { var tbody = $("#putsigal tbody"); var trs = ...

  9. Laravel自定义 封装便捷返回Json数据格式引用

    一般返回数据格式 return response()->json(['status' => 'success','code' => 200,'message' => '关注成功 ...

随机推荐

  1. mysql的事件

    mysql的事件定时器的使用: SHOW VARIABLES LIKE 'event_scheduler' --查询event_scheduler开启状态 SET GLOBAL event_sched ...

  2. 关闭MySQL数据库的几种方法

    #1.使用mysqldadmin mysqladmin -uroot -p shutdown mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/$ ...

  3. FastReport动态绑定只显示一条数据。

    产生这个问题的原因是因为需要把Band绑定DataSource.有两种方法 (1)DataBand data = report1.Report.FindObject("Data1" ...

  4. mysql 案例 ~ 分析执行完的大事务

    一 简介:今天咱们来聊聊如何定位以及执行完的大事务 二 目的:通过分析binlog脚本来定位执行的大事务 三 分析脚本 mysqlbinlog --base64-output=decode-rows ...

  5. ll(ls -l) 列属性

    文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名 drwx------ 2 Guest users 1024 Nov 21 21:05 Mail

  6. 自助Linux之问题诊断工具strace【转】

    转自:http://www.cnblogs.com/bangerlee/archive/2012/02/20/2356818.html 引言 “Oops,系统挂死了..." “Oops,程序 ...

  7. C#删除WebBrowser控件Session

    转载:http://www.hackdig.com/?02/hack-1464.htm 因为要搞一个类似帐号多开的小辅助,但是很坑爹的发现,在一个WebBrowser中,就算重新登录,显示的仍然是上一 ...

  8. mysql系列三、mysql开启缓存、设置缓存大小、缓存过期机制

    一.开启缓存 mysql 开启查询缓存可以有两种方法来开启一种是使用set命令来进行开启,另一种是直接修改my.ini文件来直接设置都是非常的简单的哦. 开启缓存,设置缓存大小,具体实施如下: 1.修 ...

  9. Win10 + VS2017 15.5.6 环境下解决 Python 3.6 环境无法刷新DB的问题

    作为宇宙第一IDE,VS2017对Python的支持还算可以,虽然和PyCharm等Python专用IDE相比还有些差距,但是经过后续的更新升级,我相信VS2017将越来越完善.由于本人一直都是使用V ...

  10. PNG,JPEG,BMP,JIF图片格式详解及其对比

    原文地址:http://blog.csdn.net/u012611878/article/details/52215985 图片格式详解 不知道大家有没有注意过网页里,手机里,平板里的图片,事实上,图 ...