将PHP命名数组映射到C#控制器参数

时间:2019-07-29 18:42:57

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

我有一个包含PHP文档的第三方API,但是我正在使用C#MVC。 API方法之一作为参数字段发送。 “ FIELDS”是一个包含字段“ ID”的数组,其中存储了int值。 因此在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#Controller参数?

P.S。实际上,“ FIELDS”数组在遇到米数时总是只包含一个ID。

1 个答案:

答案 0 :(得分:1)

由于php数组可用作键,值数据结构,当将其序列化为JSON时,您将获得类似于:

{
  "ID": 4
}

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

public class FieldsModel
{
    public int ID;
}

但是不建议使用第二种方法。

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

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