将自定义对象添加到JObject时出错

ben*_*n54 4 .net c# serialization json json.net

这些是我的课程:

public class RequestEntity
{
    public int Category { get; set; }
    public List<string> Types { get; set; }
    public List<Parameters> parameters { get; set; }
}

public class Parameters
{
    public string Name { get; set; }
    public string Type { get; set; }
    public bool IsRecent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

将值设置为:

List<RequestEntity> request = new List<RequestEntity>();
Run Code Online (Sandbox Code Playgroud)

现在,我需要创建一个JObject具有2个属性的属性。

JObject requestObject = new JObject();
JProperty property1 = new JProperty("Details", request);
JProperty property2 = new JProperty("SpanInDays", 10);
requestObject.Add(property1);
requestObject.Add(property2);
Run Code Online (Sandbox Code Playgroud)

该行JProperty property1 = new JProperty("Details", request);给我以下错误。

Could not determine JSON object type for type DAL.Entity.RequestEntity.

And*_*ker 5

您必须使用某种JTokenas作为值JProperty(至少在复杂类型的情况下)。您可以使用FromObject以下方法轻松获得其中之一:

JProperty property1 = new JProperty("Details", JToken.FromObject(request));
Run Code Online (Sandbox Code Playgroud)