我有一个以JSON格式返回数据库表的WCF服务。 SeralizeObject将unicode添加到我的httpresponse中,如何删除它?
代码:
using (var db = new newTestDBContext())
{
var query = from b in db.Roads
orderby b.roadID
select b;
Road rr = query.First();
var serializerSettings = new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects };
return JsonConvert.SerializeObject(rr, Formatting.Indented, serializerSettings);
的回复:
"{\u000d\u000a \"$id\": \"1\",\u000d\u000a \"roadparts\": [\u000d\u000a {\u000d\u000a \"$id\": \"2\",\u000d\u000a \"Road\": {\u000d\u000a
答案 0 :(得分:2)
ResponseFormat = WebMessageFormat.Json
这将是JSON编码带注释的方法的返回值。如果返回值已经是JSON字符串,那么您将进行两次JSON编码..首先是Road
对象,然后是前者产生的JSON字符串。
所以只需返回Road
对象,让WebMessageFormat.json
处理json编码。
答案 1 :(得分:1)
删除json调用中的Formatting.Indented。那应该解决它。