NewtonJson序列化中转义斜杠和多余引号的处理

时间:2025-03-27 15:08:51

两个问题:

  • 中文乱码;
  • 出现转义斜杠

字符串如下:

{\”state\":0,\"msglist\":[{\"IMTime\":\"2018-06-06  21:32:28\",\"LineName\":\"探针\",\"IMMsg\":\"收到测试任务\"},{\"IMTime\":\"2018-06-06  21:32:28\”,\”LineName\”:\”中心探针\”,\”IMMsg\":\"收到测试任务,即将开始测试!\"}]}"

  • 1
  • 2
  • 3

中文乱码问题

  • 中文乱码肯定是编码格式的问题,转换成uft-8试试
WebClient web = new WebClient();  
web.Encoding = System.Text.Encoding.GetEncoding("GB2312");  
string result =Encoding.UTF8.GetString(web.DownloadData(ConnConfig.WebAPI + "/ImmediateTest/" + TaskName));


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

转义斜杠问题

有两种可能

  1. 序列化的导致

    排除此问题的关键在看序列化后的字符串是否带有转义字符

  2. 网络传输导致的编码问题
    如果1排除掉了,那就是2有问题
    经验证,正是因为网络传输导致了多余的转义字符串,转义字符串的删除方法如下(很显然效率很低,如有更高效的方法,请多指教):

StringBuilder sb = new StringBuilder();
string[] parts = (new char[] { ' ', '\n', '\t', '\r', '\f', '\v', '\\' }, );
int size = ;
for (int i = 0; i < size; i++)
    ("{0}", parts[i]);
result = ();


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9