带反斜杠的 Json 结果 [英] Json result with out backslash

查看:96
本文介绍了带反斜杠的 Json 结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 json 结果如下所示.在这里,我的数据中出现了反斜杠.

"[{\"Route No_\":\"1001\",\"Description\":\"Testing\",\"Duration\":120,\"KM Coverage\":100.00000000000000000000,\"里程\":20.50000000000000000000,\"津贴\":150.55000000000000000000,\"维修保养\":200.2200000000000000000000000000000000000000

我的代码是

 公共字符串 GetJSONDataForRouteInfo(){数据表 dt = 新数据表();using (SqlConnection con = new SqlConnection(@"Data Source=HITSEDGE\HITSEDGE;Initial Catalog=CCIL1;User ID=dbassist;Password=assist@123")){using (SqlCommand cmd = new SqlCommand("select [Route No_],[Description],[Duration],[KM Coverage],[Mileage],[Allowance],[Repair And Maintenance] from dbo.[CRONUS International Ltd_$Route]", con)){con.Open();SqlDataAdapter da = new SqlDataAdapter(cmd);da.Fill(dt);System.Web.Script.Serialization.JavaScriptSerializer 序列化器 = new System.Web.Script.Serialization.JavaScriptSerializer();列表<字典<字符串,对象>>rows = new List>();字典<字符串,对象>排;foreach(dt.Rows 中的 DataRow dr){row = new Dictionary();foreach(dt.Columns 中的 DataColumn col){row.Add(col.ColumnName, dr[col]);}行.添加(行);}serializer.Serialize(rows);string resultjson = serializer.Serialize(rows).Replace(@"\", "");返回结果json;}}}

我的界面

[操作契约][WebGet(BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "GetJSONDataForCustmerinfo")]字符串 GetJSONDataForCustmerinfo();

这里我尝试用双代码 '"' 替换 '\'.这里我需要得到我的结果

[{"Route No_":"1001","Description":"Testing","Duration":120,"KM Coverage":100.00000000000000000000000000000000000000000000000000000000000000000000000000《维修与保养》:200.22000000000000000000}]

如何得到这样的结果.

我像下面一样替换了我的代码,但结果相同.

 公共字符串 GetJSONDataForRouteInfo(){数据表 dt = 新数据表();using (SqlConnection con = new SqlConnection(@"Data Source=HITSEDGE\HITSEDGE;Initial Catalog=CCIL1;User ID=dbassist;Password=assist@123")){using (SqlCommand cmd = new SqlCommand("select [Route No_] as Routeno,[Description],[Duration],[KM Coverage],[Mileage],[Allowance],[Repair And Maintenance] from dbo.[CRONUS International Ltd_$Route]", con)){con.Open();SqlDataAdapter da = 新的 SqlDataAdapter(cmd);da.Fill(dt);字符串 json = string.Empty;;json = JsonConvert.SerializeObject(dt);string outputjson = json.Replace("\\", "");返回输出json;}}}

解决方案

试试这个方法

公共字符串 GetJSONDataForRouteInfo(){数据表 dt = 新数据表();using (SqlConnection con = new SqlConnection(@"Data Source=HITSEDGE\HITSEDGE;Initial Catalog=CCIL1;User ID=dbassist;Password=assist@123")){using (SqlCommand cmd = new SqlCommand("select [Route No_] as Routeno,[Description],[Duration],[KM Coverage],[Mileage],[Allowance],[Repair And Maintenance] from dbo.[CRONUS International Ltd_$Route]", con)){con.Open();SqlDataAdapter da = new SqlDataAdapter(cmd);da.Fill(dt);System.Web.Script.Serialization.JavaScriptSerializer 序列化器 = new System.Web.Script.Serialization.JavaScriptSerializer();列表<字典<字符串,对象>>rows = new List>();字典<字符串,对象>排;foreach(dt.Rows 中的 DataRow dr){row = new Dictionary();foreach(dt.Columns 中的 DataColumn col){row.Add(col.ColumnName, dr[col]);}ws.Add(row);}返回 serializer.Serialize(rows);}}}

如果您可以使用 Json.NET,您可以执行以下操作

string json = JsonConvert.SerializeObject(dt, Formatting.Indented);

I am getting my my json result like below.Here i am getting Back Slashes in my data.

"[{\"Route No_\":\"1001\",\"Description\":\"Testing\",\"Duration\":120,\"KM Coverage\":100.00000000000000000000,\"Mileage\":20.50000000000000000000,\"Allowance\":150.55000000000000000000,\"Repair And Maintenance\":200.22000000000000000000}]"

My code is

    public string GetJSONDataForRouteInfo()
    {
        DataTable dt = new DataTable();
        using (SqlConnection con = new SqlConnection(@"Data Source=HITSEDGE\HITSEDGE;Initial Catalog=CCIL1;User ID=dbassist;Password=assist@123"))
        {
            using (SqlCommand cmd = new SqlCommand("select [Route No_],[Description],[Duration],[KM Coverage],[Mileage],[Allowance],[Repair And Maintenance] from dbo.[CRONUS International Ltd_$Route]", con))
            {
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);
                System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();               
                List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
                Dictionary<string, object> row;
                foreach (DataRow dr in dt.Rows)
                {
                    row = new Dictionary<string, object>();
                    foreach (DataColumn col in dt.Columns)
                    {
                        row.Add(col.ColumnName, dr[col]);
                    }
                    rows.Add(row);
                }

                serializer.Serialize(rows);

                string resultjson = serializer.Serialize(rows).Replace(@"\", "");
                return resultjson;
            }
        }
    }

And my interface is

[OperationContract]
    [WebGet(BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "GetJSONDataForCustmerinfo")]
    string GetJSONDataForCustmerinfo();

Here i try to replace '\' with double codes '"'.Here i need to get my result like

[{"Route No_":"1001","Description":"Testing","Duration":120,"KM Coverage":100.00000000000000000000,"Mileage":20.50000000000000000000,"Allowance":150.55000000000000000000,"Repair And Maintenance":200.22000000000000000000}]

How to get the result like this.

I replaced my code like below but same result.

 public string GetJSONDataForRouteInfo()
    {
        DataTable dt = new DataTable();
        using (SqlConnection con = new SqlConnection(@"Data Source=HITSEDGE\HITSEDGE;Initial Catalog=CCIL1;User ID=dbassist;Password=assist@123"))
        {
            using (SqlCommand cmd = new SqlCommand("select [Route No_] as Routeno,[Description],[Duration],[KM Coverage],[Mileage],[Allowance],[Repair And Maintenance] from dbo.[CRONUS International Ltd_$Route]", con))
            {
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);                
                string json = string.Empty; ;
                json = JsonConvert.SerializeObject(dt);


                string outputjson = json.Replace("\\", "");


                return outputjson;
            }
        }
    }

解决方案

try in this way

public string GetJSONDataForRouteInfo()
    {
        DataTable dt = new DataTable();
        using (SqlConnection con = new SqlConnection(@"Data Source=HITSEDGE\HITSEDGE;Initial Catalog=CCIL1;User ID=dbassist;Password=assist@123"))
        {
            using (SqlCommand cmd = new SqlCommand("select [Route No_] as Routeno,[Description],[Duration],[KM Coverage],[Mileage],[Allowance],[Repair And Maintenance] from dbo.[CRONUS International Ltd_$Route]", con))
            {
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);  
                System.Web.Script.Serialization.JavaScriptSerializer serializer = new    System.Web.Script.Serialization.JavaScriptSerializer();
                List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
                Dictionary<string, object> row;
                foreach (DataRow dr in dt.Rows)
                {
                   row = new Dictionary<string, object>();
                   foreach (DataColumn col in dt.Columns)
                   {
                     row.Add(col.ColumnName, dr[col]);
                   }
                   ws.Add(row);
                 }
                  return serializer.Serialize(rows);                    
            }
        }
    }

if you can use Json.NET you can do the following

string json = JsonConvert.SerializeObject(dt, Formatting.Indented);

这篇关于带反斜杠的 Json 结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆