Newtonsoft.Json返回'\'字符

时间:2015-06-01 04:04:25

标签: c# json.net

我正在使用Newtonsoft.Json库来序列化一个对象。问题是,当我创建JSON字符串时,它带有'\'字符。我看到一些答案说这只是一个调试器问题,但我正在使用这个'\'获取JSON,直到消费该服务的客户端。 我也试图用一个函数删除这个chacater,但似乎它与StringBuilder完全相同。

private static string DatatableToJSON(DataTable dt)
{
    string JSONresult;
    JSONresult = JsonConvert.SerializeObject(dt, Formatting.None);
    return JSONresult;
}

我得到了:

  

“[{\” ID \ “:\” 72d209d5-0028-4162-94d0-d8cae856e1b7 \”,\ “用户名\”:\ “尼古拉斯\”,\ “农布雷\”:\ “ASD \”} {\ “ID \”:\ “8ecdd5eb-b6a8-40f7-87a6-28ae39d5924c \”,\ “用户名\”:\ “马里奥\”,\ “农布雷\”:\ “ASD \”},{\” ID \ “:\” c48d2d27-40af-4bfe-A912-a18689c70076 \ “\ ”用户名\“:\ ”迭\“,\ ”农布雷\“:\ ”ASD \“}]”

任何人都可以帮我这个吗?这让我发疯了!。

感谢。

3 个答案:

答案 0 :(得分:3)

它只是一个转义字符。在String中,您可以看到反斜杠为转义字符。您可以运行该代码。

JSONresult.ToString();

输出中没有包含" \"

答案 1 :(得分:0)

那些是逃脱角色。您可以将所有\'\"\\替换为'"\。 无论如何,如果它们出现在客户端,这很奇怪。我认为它可能是您正在使用的字符串格式或过滤器。

答案 2 :(得分:0)

最后,这解决了我的问题。我希望它可以帮到某人:

public static IHtmlString SerializeObject(object value)
{
    using (var stringWriter = new StringWriter())
    using (var jsonWriter = new JsonTextWriter(stringWriter))
    {
        var serializer = new JsonSerializer
        {
            // Let's use camelCasing as is common practice in JavaScript
            ContractResolver = new CamelCasePropertyNamesContractResolver()
        };

        // We don't want quotes around object names
        jsonWriter.QuoteName = false;
        serializer.Serialize(jsonWriter, value);

        return new HtmlString(stringWriter.ToString());
    }