Android 删除特殊字符

Android 删除特殊字符,android,wcf,json,Android,Wcf,Json,我想在Android sqlite和MS SQL server之间进行复制。那一次我想从数据库中获取表值 这是我的JSON { "Table1":[ { "BusinessUnit":"MASS", "ProductCode":"SLD0201", "Description":"Lou Difan C.Blue 12"3- Commode", "Description2":"301 0201"

我想在Android sqlite和MS SQL server之间进行复制。那一次我想从数据库中获取表值

这是我的JSON

     {
   "Table1":[
      {
         "BusinessUnit":"MASS",
         "ProductCode":"SLD0201",
         "Description":"Lou Difan C.Blue 12"3- Commode",
         "Description2":"301 0201"

      },


      {
         "BusinessUnit":"MASS",
         "ProductCode":"SLN0502",
         "Description":"Lou Napoli I"vory- Cistern",
         "Description2":"2011 0502"

      },

      {
         "BusinessUnit":"MASS",
         "ProductCode":"LDMBL6H",
         "Description":"Dortek Taper Bullet Handle 6"5 serr ",
         "Description2":"Taper Bullet Ha"

      }

   ],
   "Table2":[
      {
         "chk":6,
         "currentchk":1
      }
   ]
}
在这里JSON描述列值包含“(双引号)。如果我们检查,它显示错误。这是一个无效的JSON

WCF服务我已将数据集转换为JSON。某些表列包含特殊的特许

我是这样转换的:

       public String ConverTableToJson(DataSet dsDownloadJson,int currentSplit)
    {
        StringBuilder Sb = new StringBuilder();
        String result = "";
        int start = 0;
        int end =500;
        int chk = 0;
        int currentChk = currentSplit;
        if (dsDownloadJson.Tables.Count > 0)
        {
            Sb.Append("{");
            foreach (DataTable dt in dsDownloadJson.Tables)
            {
                DataTable dtDownloadJson = dt;
                string[] StrDc = new string[dtDownloadJson.Columns.Count];
                string HeadStr = string.Empty;
                double total = dtDownloadJson.Rows.Count;
                Console.WriteLine("--1--" + dtDownloadJson.Rows.Count);
                if (dtDownloadJson.Rows.Count < 500)
                {
                    end = dtDownloadJson.Rows.Count;
                }

                if (chk == 0)
                {
                    if (dtDownloadJson.Rows.Count > 500)
                    {
                        if ((dtDownloadJson.Rows.Count / 500) == 0)
                        {
                            chk = dtDownloadJson.Rows.Count / 500;
                        }
                        else
                        {
                            chk = dtDownloadJson.Rows.Count / 500 + 1;
                        }
                    }
                    else
                    {
                        chk = 1;
                    }
                    currentChk = 1;
                }
                else
                {
                    currentChk = currentChk + 1;
                    start = currentChk * 500;
                    end = start + 500;
                    currentChk = chk;
                }
                Sb.Append("\"" + dtDownloadJson.TableName + "1\" : [");

                if (dtDownloadJson.Rows.Count > 0)
                {
                    for (int i = 0; i < dtDownloadJson.Columns.Count; i++)
                    {
                        StrDc[i] = dtDownloadJson.Columns[i].Caption;
                        HeadStr += "\"" + StrDc[i] + "\" : \"" + StrDc[i] + i.ToString() + "¾" + "\",";
                    }

                    if (HeadStr.Length > 0)
                    {
                        HeadStr = HeadStr.Substring(0, HeadStr.Length - 1);
                        Console.WriteLine("--2--" + start);
                        Console.WriteLine("--3--" + end);
                        for (int i = start; i < end; i++)
                        {

                            string TempStr = HeadStr;
                            Sb.Append("{");
                            for (int j = 0; j < dtDownloadJson.Columns.Count; j++)
                            {
                                TempStr = TempStr.Replace(dtDownloadJson.Columns[j] + j.ToString() + "¾", dtDownloadJson.Rows[i][j].ToString());
                                TempStr = TempStr.Replace(""", '\"');
                            }

                            Sb.Append(TempStr + "},");
                        }

                        Sb = new StringBuilder(Sb.ToString().Substring(0, Sb.ToString().Length - 1));
                    }

                }
                else
                {

                }
                Sb.Append("],");
                if (chk > 1)
                {
                    Sb.Append("\"Table2\": [{\"chk\": " + chk + ", \"currentchk\": " + currentChk + " }]");
                }
                else
                {
                    Sb.Append("\"Table2\": [{\"chk\": " + chk + ", \"currentchk\": " + currentChk + " }]");
                }


            }
           // Sb = new StringBuilder(Sb.ToString().Substring(0, Sb.ToString().Length - 1));
            Sb.Append("}");
            return Sb.ToString(); 
        }
        else
        {
            return "0";
        }
    }
公共字符串ConverTableToJson(数据集dsDownloadJson,int currentSplit)
{
StringBuilder Sb=新的StringBuilder();
字符串结果=”;
int start=0;
int end=500;
int-chk=0;
int currentChk=currentspilt;
if(dsDownloadJson.Tables.Count>0)
{
某人附加(“{”);
foreach(dsDownloadJson.Tables中的数据表dt)
{
DataTable dtDownloadJson=dt;
string[]StrDc=新字符串[dtDownloadJson.Columns.Count];
string HeadStr=string.Empty;
double total=dtDownloadJson.Rows.Count;
WriteLine(“--1--”+dtDownloadJson.Rows.Count);
if(dtDownloadJson.Rows.Count<500)
{
end=dtDownloadJson.Rows.Count;
}
如果(chk==0)
{
如果(dtDownloadJson.Rows.Count>500)
{
if((dtDownloadJson.Rows.Count/500)==0)
{
chk=dtDownloadJson.Rows.Count/500;
}
其他的
{
chk=dtDownloadJson.Rows.Count/500+1;
}
}
其他的
{
chk=1;
}
电流chk=1;
}
其他的
{
currentChk=currentChk+1;
start=currentChk*500;
结束=开始+500;
电流chk=chk;
}
Sb.追加(“\”+dtDownloadJson.TableName+“1\”:[”);
如果(dtDownloadJson.Rows.Count>0)
{
for(int i=0;i0)
{
HeadStr=HeadStr.子字符串(0,HeadStr.长度-1);
Console.WriteLine(“--2--”+start);
控制台写入线(“--3--”+结束);
for(int i=start;i1)
{
Sb.追加(“\'Table2\”:[{\'chk\”:“+chk+”,\“currentchk\”:“+currentchk+”}]);
}
其他的
{
Sb.追加(“\'Table2\”:[{\'chk\”:“+chk+”,\“currentchk\”:“+currentchk+”}]);
}
}
//Sb=新的StringBuilder(Sb.ToString().子字符串(0,Sb.ToString().长度-1));
某人附加(“}”);
使某人返回字符串();
}
其他的
{
返回“0”;
}
}
我的问题是删除特殊特许或如何允许特殊字符


请帮助我任何人…

您不应该使用StringBuilder将对象转换为JSON字符串。使用库中的JsonConverter类,它会为您处理JSON的序列化/反序列化(包括转义)

您不应该使用StringBuilder将对象转换为JSON字符串。请使用库中的JsonConverter类,它会为您处理JSON的序列化/反序列化(包括转义)

尝试使用内置JSON序列化

public static string Serialize<T>(T obj)

    {
        System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new

        System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
        MemoryStream ms = new MemoryStream();
        serializer.WriteObject(ms, obj);
        string retVal = Encoding.Default.GetString(ms.ToArray());
        ms.Dispose();
        return retVal;

    }
公共静态字符串序列化(T obj)
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer=新
System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
MemoryStream ms=新的MemoryStream();
serializer.WriteObject(ms,obj);
string retVal=Encoding.Default.GetString(ms.ToArray());
Dispose女士();
返回返回;
}

尝试使用内置json序列化

public static string Serialize<T>(T obj)

    {
        System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new

        System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
        MemoryStream ms = new MemoryStream();
        serializer.WriteObject(ms, obj);
        string retVal = Encoding.Default.GetString(ms.ToArray());
        ms.Dispose();
        return retVal;

    }
公共静态字符串序列化(T obj)
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer=新
System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
MemoryStream ms=新的MemoryStream();
serializer.WriteObject(ms,obj);
string retVal=Encoding.Default.GetString(ms.ToArray());
Dispose女士();
返回返回;
}