求解,C#写的webService,连接数据库返回是xml,怎么转换成json?

时间:2021-06-09 13:30:29
现在需要用c#写一个webService,已经可以连接数据库进行操作了,但是返回的值是xml类型的,如下:

  <?xml version="1.0" encoding="utf-8" ?> 
- <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
  <string>001</string> 
  <string>id001</string> 
  <string>yiyiyi</string> 
  <string>nan</string> 
  <string>002</string> 
  <string>id002</string> 
  <string>ererer</string> 
  <string>nan</string> 
  <string>003</string> 
  <string>id003</string> 
  <string>san</string> 
  <string>nv</string> 
  </ArrayOfString>


而需要的返回结果是如下的json格式:

[
        {
            "barcode": 10000110001,
            "patient_id": "PT00001",
            "patient_name ": "张三",
            "sex": "男",
            "age": "38",
            "id_card": "422222198810010001",
            "nationality": "汉族",
            "group_code": "ZXG0001",
            "group_name":"生化3",
            "sample_time": " 2017-2-27 16:26:05",
            "sample_person": "王某",
            "sample_address": "分店名称或者科室名称",
            "apply_doctor": "张某",
            "from_org_code": " 100001",
            "from_org_name": "健康管理中心"
        },{
            "barcode": 10000110002,
            "patient_id": "PT00002",
            "patient_name ": "李四",
            "sex": "女",
            "age": "28",
            "id_card": "422222198810010001",
            "nationality": "汉族",
            "group_code": "ZXG0002",
            "group_name":"生化5",
            "sample_time": " 2017-2-27 16:26:05",
            "sample_person": "王某",
            "sample_address": "分店名称或者科室名称",
            "apply_doctor": "张某",
            "from_org_code": " 100001",
            "from_org_name": "健康管理中心"
        }
    ]


我使用的是DataReader,代码如下:

// List<string> AppListRecord = new List<string>();
while (sqlReader.Read()){
    AppListRecord.Add(sqlReader[0].ToString());
    AppListRecord.Add(sqlReader[1].ToString());
    AppListRecord.Add(sqlReader[2].ToString());
}

return AppListRecord;


所以我觉得我现在是有两个问题:
1.怎么将xml转化成json;
2,怎么将表的列名,用引号括起来拼接到前面。

求指导,谢谢

3 个解决方案

#1


你是想服务端,读数据库,然后返回一个json串?

#2


直接用webapi不就行了?跟ws比起来也差不多没啥难度

#3


如果可以的话,建议选择webapi来返回json。webservice对于json的支持,先天不足。他就是返回xml的。
但如果无法更改,那你参考http://blog.csdn.net/hougelou/article/details/70649559?locationNum=4&fps=1 
至于xml转json的问题,有点荒唐。
因为你从数据库拿取数据,无论是 对象还是datatable。通过json.net都可以直接转成json直接返回。

#1


你是想服务端,读数据库,然后返回一个json串?

#2


直接用webapi不就行了?跟ws比起来也差不多没啥难度

#3


如果可以的话,建议选择webapi来返回json。webservice对于json的支持,先天不足。他就是返回xml的。
但如果无法更改,那你参考http://blog.csdn.net/hougelou/article/details/70649559?locationNum=4&fps=1 
至于xml转json的问题,有点荒唐。
因为你从数据库拿取数据,无论是 对象还是datatable。通过json.net都可以直接转成json直接返回。