2

我有一个 WCF 服务,它以 JSON 格式返回数据库表。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       
4

2 回答 2

2

ResponseFormat = WebMessageFormat.Json

这将对带注释的方法的返回值进行 JSON 编码。如果返回值已经是 JSON 字符串,那么您将进行两次 JSON 编码。首先是Road对象,然后是前者产生的 JSON 字符串。

所以只需返回Road对象并让WebMessageFormat.json处理 json 编码。

于 2013-02-07T10:05:50.183 回答
1

删除 json 调用中的 Formatting.Indented 。那应该解决它。

于 2013-09-28T03:31:32.623 回答