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 に答える