【问题标题】:HTML serializing issue in WCF Web API to XML and JsonWCF Web API 到 XML 和 Json 的 HTML 序列化问题
【发布时间】:2012-03-19 18:40:52
【问题描述】:

我正在使用 WCF Web API 服务通过 Json 和 Xml 发布一些数据。但是我对 html 字符串进行序列化时遇到了问题。

对于 Xml 序列化,我使用 XmlMediaTypeFormatter() 和 对于 Json 序列化,我有使用 Newtonsoft.Json 库的 CustomJSONMediaTypeFormatter 类。

我使用实体框架从数据库中获取数据,并且像下面的代码一样,我使用 WCF Web api 服务发布它。

    [WebGet(UriTemplate = "getLogin")]
    public IQueryable<LoginTableDTO> Login()
    {
         var loginList = ltr.GetList();
        List<LoginTableDTO> dtoList = new List<LoginTableDTO>();
        foreach (LoginTable item in loginList)
        {
            dtoList.Add(LoginTableAssembler.ToDTO(item));
        }
    return dtoList.AsQueryable();
}

但使用 html 字符串,例如

<p><input style="float: right" type="submit" name="name" value="Save Changes" /></p>

来自数据库,序列化返回后

&lt;p&gt;&lt;input style="float: right" type="submit" name="name" value="Save Changes" /&gt;&lt;/p&gt;

用于 xml 并返回

\u003cp\u003e\u003cinput style=\"float: right\" type=\"submit\" name=\"name\" value=\"Save Changes\" /\u003e\u003c/p\u003e

对于 Json。

如您所见,它们不是人类可读的。

我也对 datetime 对象有一些问题。但我在实际做之前找到了一个转换字符串的解决方案,我对此并不满意。(那是另一个问题)。

如何将 HTML 字符串(如普通字符串(没有“html 标签”))序列化为 XML 和 JSON?

提前谢谢...

【问题讨论】:

    标签: c# xml serialization wcf-web-api json.net


    【解决方案1】:

    我不是 100% 确定你想要什么,但如果你想要的话:

    &lt;p&gt;&lt;input style="float: right" type="submit" name="name" value="Save Changes" /&gt;&lt;/p&gt;
    

    变成:

    <p><input style="float: right" type="submit" name="name" value="Save Changes" /></p>
    

    使用http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx。问题是您需要转义 HTML 以将其保存为 XML....意思是我认为下面的字符串看起来是正确的。

    \u003cp\u003e\u003cinput style=\"float: right\" type=\"submit\" name=\"name\" value=\"Save Changes\" /\u003e\u003c/p\u003e
    

    【讨论】:

    猜你喜欢
    • 2012-02-19
    • 2016-12-11
    • 1970-01-01
    • 2016-06-22
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多