日期:2014-05-16  浏览次数:21339 次

Newtonsoft.Json输出json时多了转义字符\
我现在有个IList<ITeam> list_team,
直接使用string strJson=Newtonsoft.Json.JsonConvert.SerializeObject(list_team);转换时,可以正常转换。
可是我想加个status属性,然后 list_team的内容作为goods属性的值。
StringBuilder sb = new StringBuilder();
        StringWriter sw = new StringWriter(sb);
        JsonWriter writer = new JsonTextWriter(sw) ;
        writer.WriteStartObject();

        writer.WritePropertyName("Status");
        writer.WriteValue(1);
        writer.WritePropertyName("Goods");
        writer.WriteValue(strJson);

        writer.WriteEndObject();
        writer.Flush();
        return sb.ToString();
处理后,变成了这样
{"Status":1,"Goods":"[{\"Id\":2,\"User_id\":1……
原来 list_team中引号全部变成了转义\",该怎么处理呢?谢谢大家!
------解决方案--------------------
比如说写          
     writer.WritePropertyName("Status");
         writer.WriteValue(1);
         writer.WritePropertyName("Goods");
         writer.WriteValue(list_team);

或者是转换为 JObject,例如
    var jsn = new JObject();
      jsn["Status"] = 1;
      jsn["Goods"]= JArray.FromObject(list_team);
      resultString = jsn.ToString();