gpt4 book ai didi

c# - 如何在dotnet core中将动态对象序列化为JSON字符串?

转载 作者:行者123 更新时间:2023-12-03 16:45:37 24 4
gpt4 key购买 nike

我正在将JSON有效负载传递给API Controller ,并且其中一个字段是动态的,因为该字段需要作为JSON字符串再次传递给另一个API。 dotnet核心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; }
}

这是VSCode中的 dynamic对象的图片:

enter image description here

当我使用 JsonConvert.SerializeObject(x.Action);时,字符串结果未正确转换,而是序列化为ValueKind: "{\"ValueKind\":1}"

我想要获取的是作为JSON字符串的操作对象值,它应该看起来像 "{"createRepository":{"onboarding":{"service":{"organization":"foo","repositoryName":"foo-2-service","description":"A test service."}}}}"
是否有一个简单的解决方案来序列化动态对象?

最佳答案

我遇到了同样的问题,并以这种方式解决了

using System.Text.Json;

string serializedObject = JsonSerializer.Serialize(x.Action); //Instead of use JsonConvert.SerializeObject(x.Action);
代替 Newtonsoft.Json,您必须使用 System.Text.Json

关于c# - 如何在dotnet core中将动态对象序列化为JSON字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60465030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com