从 JSON 中删除转义字符和引号

  • 本文关键字:转义字符 删除 JSON c# json
  • 更新时间 :
  • 英文 :


如何从 json 字符串中删除转义字符以及第一个和最后一个引号,如下所示:

"{"SagsNr":5,"Titel":"Nr. Boulevard 76, st. tv. 8900 Randers C","EjendomBeskrivelse":"Boulevardgården i Randers er nyrenoveret med 90 lejemål fordelt på Nr. Boulevard, Mariagervej og Ny vinkelvej u000du000a u000du000aIndenfor en radius af 1-2 km ligger både Randers City med flere hundrede specialforretninger, Regionshospitalet Randers, offentlige transportmuligheder, skoler, idrætsanlæg og stadionu000du000a u000du000aEjendommen har lukket, grønt gårdmiljø med bl.a. legeplads. Der er vaskeri i ejendommenu000du000a u000du000aAlle lejligheder råder over eget kælderrumu000du000a u000du000aBoulevardgården har nyrenoveret tag (2010)u000du000a u000du000aHusdyr ikke tilladtu000du000a","Areal":54.00,"Leje":3711.00,"LejemaalBeskrivelse":"Mindre lejlighed på 54 kvm i Boulevardgårdenu000du000aLejligheden har to værelser og er beliggende i stueplanu000du000aDer hører kælderrum til lejlighedenu000du000aLejligheden hører til ejendom med lukket, grønt gårdmiljø med bl.a. legeplads. Der er moderne betalingsvaskeri i ejendommen.u000du000au000du000a","Adresse1":"Nr. Boulevard 76, st. tv.","Rum":2,"Etage":0,"PostNr":"8900","ByNavn":"Randers C","AntalBilleder":11,"AntalProspekter":0,"AntalKort":1"

我在这里使用此方法对包含来自 sql 数据库的数据的数据表进行 json化:

private string GetJson(DataTable dt)
{
System.Web.Script.Serialization.JavaScriptSerializer Jserializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, object>> rowsList = new List<Dictionary<string, object>>();
Dictionary<string, object> row = null;
foreach (DataRow dr in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rowsList.Add(row);
}
return Jserializer.Serialize(rowsList);
}

如果我只是通过 f.eks 删除最后一个字符:

json = json.Substring(0, json.Length - 2);

它忽略引号。 我还尝试了几种替换来摆脱转义字符,但似乎没有任何效果,或者它还删除了字符串其余部分的引号,这是我不想要的(只是第一个和最后一个(。

我在这里完全迷路了,希望得到任何帮助。

编辑:当我运行这个时:

return json.Replace("rn", "")
.Replace("r", "")
.Replace("n", "")
.Replace("\", "")
.Replace(""", "");

我明白这个:

"{SagsNr:5,Titel:Nr. Boulevard 76, st. tv. 8900 Randers C,EjendomBeskrivelse:Boulevardgården i Randers er nyrenoveret med 90 lejemål fordelt på Nr. Boulevard, Mariagervej og Ny vinkelvej rn rnIndenfor en radius af 1-2 km ligger både Randers City med flere hundrede specialforretninger, Regionshospitalet Randers, offentlige transportmuligheder, skoler, idrætsanlæg og stadionrn rnEjendommen har lukket, grønt gårdmiljø med bl.a. legeplads. Der er vaskeri i ejendommenrn rnAlle lejligheder råder over eget kælderrumrn rnBoulevardgården har nyrenoveret tag (2010)rn rnHusdyr ikke tilladtrn,Areal:54.00,Leje:3711.00,LejemaalBeskrivelse:Mindre lejlighed på 54 kvm i BoulevardgårdenrnLejligheden har to værelser og er beliggende i stueplanrnDer hører kælderrum til lejlighedenrnLejligheden hører til ejendom med lukket, grønt gårdmiljø med bl.a. legeplads. Der er moderne betalingsvaskeri i ejendommen.rnrn,Adresse1:Nr. Boulevard 76, st. tv.,Rum:2,Etage:0,PostNr:8900,ByNavn:Randers C,AntalBilleder:11,AntalProspekter:0,AntalKort:1}"

这有点接近我想要的,但我仍然需要值周围的引号,并且我仍然需要删除开头和结尾的引号。

编辑3: 不替换字符:https://i.stack.imgur.com/do2sw.png 替换字符后:https://i.stack.imgur.com/4sl5b.png

我已经想通了。

我确实需要像艾米所说的那样对我的JSON做一些小的更改。然后我将方法的返回类型从字符串切换到 Stream,并通过以下内容运行 JSON:

WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
return new MemoryStream(Encoding.UTF8.GetBytes(json));

现在输出终于没有转义字符了,第一个/最后一个引号也消失了,可能是因为它不再是字符串。在这里找到它: 返回 JSON 格式数据的 WCF Web 服务

最新更新