我正在将一个JSON有效载荷传递给一个API控制器,其中一个字段是动态的,因为这个字段需要作为一个JSON字符串再次传递给另一个API。 dotnet core 3.1中间层不应该关注类型,因为有效载荷会改变。
这就是传递到API Controller中的对象。
public class GitHubAction
{
[JsonProperty("Title")]
public string Title { get; set; }
[JsonProperty("Enabled")]
[JsonConverter(typeof(BooleanParseStringConverter))]
public bool Enabled { get; set; }
[JsonProperty("Action")]
[JsonConverter(typeof(ExpandoObjectConverter))]
public dynamic Action { get; set; }
}
下面是一张图片 dynamic
对象在VSCode中的样子。
当我使用 JsonConvert.SerializeObject(x.Action);
字符串结果没有被正确转换,而是序列化为ValueKind。"{\"ValueKind\":1}"
.
我想得到的是作为JSON字符串的动作对象值,它应该是这样的 "{"createRepository":{"onboarding":{"service":{"organization":"foo","repositoryName":"foo-2-service","description":"A test service."}}}}"
有没有一个简单的解决方案,可以将一个动态对象序列化?
试试这个
var jsonString=s.Action.ToString();
这将给你一个json字符串