C# 自动属性反序列化 - 列表

发布于 2024-10-23 19:35:08 字数 869 浏览 1 评论 0原文

我尝试在 MVC 操作中使用自动反序列化,如下所示:

public void CreateEntitlementEntity(EntitlementEntityModel model) {
     // stuff
}

这是我想要反序列化的类:

public class EntitlementEntityModel {
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }

    public List<string> Domains { get; set; }

    public EntitlementEntityModel() { }
}

我将 JSON 数据对象传递给控制器​​操作:

data: {
    FirstName: 'first',
    LastName: 'last',
    Email: '[email protected]',
    Domains: ['a','b','c']
}

除了字符串列表之外,所有属性都正确反序列化。我想将 JSON 数组转换为列表,但它却给了我一个列表,其中包含一个字符串,即 JSON 数组字符串。

有没有办法在 .Net Framework 3.5 中实现这一点?

谢谢

I'm trying to use automatic deserialization in my MVC action like so:

public void CreateEntitlementEntity(EntitlementEntityModel model) {
     // stuff
}

And here's the class I want to deserialize:

public class EntitlementEntityModel {
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }

    public List<string> Domains { get; set; }

    public EntitlementEntityModel() { }
}

I'm passing a JSON object of data to the controller action:

data: {
    FirstName: 'first',
    LastName: 'last',
    Email: '[email protected]',
    Domains: ['a','b','c']
}

All of the properties deserialize correctly except the List of strings. I would like to turn a JSON array into a List, but it instead gives me a list with one string in it, the JSON array string.

Is there a way to accomplish this in .Net Framework 3.5?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

缺⑴份安定 2024-10-30 19:35:08

也许您可以使用该线程的一些输入?

将 json 数组反序列化为 .net 类

Maybe you can use some input from this thread?

Deserializing json array into .net class

青春如此纠结 2024-10-30 19:35:08

如果将 JsonValueProviderFactory 转储到 global.asax 中的 OnApplicationStarted() 方法中,它应该将 json 对象反序列化到控制器操作的输入参数中。

protected override void OnApplicationStarted()
{
    base.OnApplicationStarted();

    // for managing complex json objects
    ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());

If you dump the JsonValueProviderFactory into your OnApplicationStarted() method in your global.asax, it should deserialize json objects into the input parameters of your controller action just fine.

protected override void OnApplicationStarted()
{
    base.OnApplicationStarted();

    // for managing complex json objects
    ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文