与这个问题类似,我有一个具有几种不同属性类型的类,包括 BsonDocument。
public class Report
{
[BsonId, JsonIgnore]
public ObjectId _id { get; set; }
public string name { get; set; }
[JsonIgnore]
public BsonDocument layout { get; set; }
[BsonIgnore, JsonProperty(PropertyName = "layout")]
public string layout2Json
{
get { return layout.ToJson(); }
}
}
在那里有 BsonDocument 的原因是布局属性是非结构化的,我不能有任何强类型的子类。现在,当 ApiController 返回此类时,我得到如下信息:
{
name: "...",
layout: "{type: "...", sth: "..."}"
}
但我需要的是作为对象的布局属性,而不是字符串。
JSON.NET 中有没有办法将 json-string(已经是有效的 json)作为对象而不是字符串插入?
以下工作,但似乎很浪费:
[BsonIgnore, JsonProperty(PropertyName = "layout")]
public JObject layout2Json
{
get { return JObject.Parse(layout.ToJson()); }
}