【问题标题】:Map PHP named array to C# controller parameter将 PHP 命名数组映射到 C# 控制器参数
【发布时间】:2019-07-29 18:42:57
【问题描述】:

我有一个带有 PHP 文档的第三方 API,但我使用的是 C# 和 ASP.NET MVC。

其中一种 API 方法作为参数 Fields 发送。

FIELDS 是一个数组,其中包含存储 int 值的字段 ID

所以在 PHP 中它会是这样的:

$fields=array(ID=>4);

在 C# 中将此类参数获取到控制器方法的最佳方法是什么?

我是这样做的:

public class FieldsModel
{
    public int ID { get; set; }
}

[HttpPost]
public string Test(FieldsModel[] FIELDS)
{
   //some code goes here
}

这段代码可以运行,但也许有更好的解决方案将 PHP 命名数组映射到 C# 控制器参数?

附:实际上FIELDS 数组总是只包含一个 ID。

【问题讨论】:

    标签: c# php rest asp.net-mvc-4


    【解决方案1】:

    由于 php 数组可以用作 key,value 数据结构,当它被序列化为 JSON 时,你会得到类似的东西:

    {
      "ID": 4
    }
    

    在 C# 中管理它的最简单方法(知道 C# 主要用于编写面向对象的代码)是将 JSON 解析为一个对象,该对象包含每个 JSON 键的属性。您还可以更改使用字段而不是这样的属性:

    public class FieldsModel
    {
        public int ID;
    }
    

    但不推荐第二种方法。

    我认为您只会获得一个“字段”,因此您可以重写您的测试端点以等待单个 FieldsModel,如下所示:

    [HttpPost]
    public string Test(FieldsModel fields)
    {
       //some code goes here
    }
    

    【讨论】:

    • 是的,这就是我要找的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 2015-05-09
    • 2016-02-08
    • 2013-03-20
    • 2018-08-03
    • 2012-11-15
    • 1970-01-01
    相关资源
    最近更新 更多