1

我有一个这样的模型

public class Category : BaseFieldsTables
{
        public ICollection<Category> Categories { get; set; }
        public Category Parent { get; set; }
        public int? ParentId { get; set; }
}

我想将模型序列化为 json,这是我的控制器

    var categories =
            _efCategory.List().ToList().
                ToList().
                Select(x => new {id = x.Id, title = x.Name, children = x.Parent});

        string output = JsonConvert.SerializeObject(categories, Formatting.Indented,
                                                    new JsonSerializerSettings
                                                        {
                                                            PreserveReferencesHandling = PreserveReferencesHandling.Objects
                                                        });

        return Json(output.Replace, JsonRequestBehavior.AllowGet);

但我得到了这个结果

    "[\r\n  {\r\n    \"$id\": \"1\",\r\n    \"id\": 1,\r\n    \"title\": \"News\",\r\n    \"children\": null\r\n  },\r\n  {\r\n    \"$id\": \"2\",\r\n    \"id\": 2,\r\n    \"title\": \"2012\",\r\n    \"children\":
 {\r\n      \"$id\": \"3\",\r\n      \"Categories\": [\r\n        {\r\n          \"$id\": 
4

1 回答 1

0

这个是正常的。您所看到的只是字符串的转义版本(可能直接在 Visual Studio 中)。\r\n相当于换行符,\"只是逃避". 输出,这应该正常显示。

于 2012-12-04T07:38:17.697 回答