WCF Web API中将HTML序列化为XML和Json的问题 [英] HTML serializing issue in WCF Web API to XML and Json
问题描述
我正在使用WCF Web API服务通过Json和Xml发布一些数据.但是我对html字符串进行序列化有问题.
对于Xml序列化,我使用XmlMediaTypeFormatter()和对于Json序列化,我有使用Newtonsoft.Json库的CustomJSONMediaTypeFormatter类.
我使用Entity Framework从数据库中获取数据,就像下面的代码一样,我使用WCF Web api服务发布了数据.
[WebGet(UriTemplate ="getLogin")]公共IQueryable< LoginTableDTO>登录(){var loginList = ltr.GetList();列表< LoginTableDTO>dtoList = new List< LoginTableDTO>();foreach(loginList中的LoginTable项目){dtoList.Add(LoginTableAssembler.ToDTO(item));}返回dtoList.AsQueryable();}
但带有类似html的字符串
< p><输入样式="float:right" type ="submit" name ="name" value =保存更改"/></p>
来自数据库,序列化后返回
& lt; p& gt;& lt;输入样式="float:right" type ="submit" name ="name" value ="Save Changes"/& lt;/p& gt;
用于xml并返回
\ u003cp \ u003e \ u003c输入样式= \浮点数:正确\" type = \提交\" name = \"name \" value = \保存更改\"/\ u003e \ u003c/p\ u003e
杰森(Json).
如您所见,它们是不可读的.
我对datetime对象也有一些问题.但是我实际上找到了一种解决方案,可以在转换字符串之前进行处理,对此我并不满意.(这是另一个问题).
如何将HTML字符串(如普通字符串(不包含"html标记")序列化为XML和JSON?
预先感谢...
我不是100%确定您想要什么,但是如果您想要的话:
& lt; p& gt;& lt;输入样式="float:right" type ="submit" name ="name" value ="Save Changes"/& lt;/p& gt;
成为:
< p><输入样式="float:right" type ="submit" name ="name" value =保存更改"/></p>
使用 http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx .问题是您需要转义HTML才能将其保存为XML....这意味着我认为下面的字符串看起来正确.
\ u003cp \ u003e \ u003c输入样式= \浮点数:正确\" type = \提交\" name = \"name \" value = \保存更改\"/\ u003e \ u003c/p\ u003e
I am using WCF Web API service to publish some data via Json and Xml. But I have a problem with html string to serialize it.
for Xml serialize I use XmlMediaTypeFormatter() and for Json serialize I have CustomJSONMediaTypeFormatter class which uses Newtonsoft.Json library.
I get data with Entity framework from database, and like code bellow I publish it with WCF web api service.
[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();
}
but with html strings like
<p><input style="float: right" type="submit" name="name" value="Save Changes" /></p>
which are coming from database, after serialize returns
<p><input style="float: right" type="submit" name="name" value="Save Changes" /></p>
for xml and returns
\u003cp\u003e\u003cinput style=\"float: right\" type=\"submit\" name=\"name\" value=\"Save Changes\" /\u003e\u003c/p\u003e
for Json.
As you see they are not human readable.
I also have some problem with datetime object. but I found a solution to convert string before doing that prosses actually, I am not happy with it.(thats another issue).
What should I do for serializing HTML strings like normal strings (which are not have "html tags") to XML and JSON?
Thanks in advance...
I'm not 100% sure what you want but if you want:
<p><input style="float: right" type="submit" name="name" value="Save Changes" /></p>
to become:
<p><input style="float: right" type="submit" name="name" value="Save Changes" /></p>
use http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx. The problem is that you'll need to escape the HTML to save it to XML....meaning I think the string below looks right.
\u003cp\u003e\u003cinput style=\"float: right\" type=\"submit\" name=\"name\" value=\"Save Changes\" /\u003e\u003c/p\u003e
这篇关于WCF Web API中将HTML序列化为XML和Json的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!