C# 如何在从Rest客户端post时在单个对象中获取json数据?

C# 如何在从Rest客户端post时在单个对象中获取json数据?,c#,json,api,web,C#,Json,Api,Web,我在RestClient中使用了以下json数据来发布 { "Cars": [ { "color":"Blue", "miles":100, "vin":"1234" }, { "color":"Red", "miles":400, "vin":"1235" } ], "truck": { "color":"Red", "mi

我在RestClient中使用了以下json数据来发布

{
  "Cars": [
      {
        "color":"Blue",
        "miles":100,
        "vin":"1234"
      },
      {
        "color":"Red",
        "miles":400,
        "vin":"1235"
      }
  ],
  "truck": {
    "color":"Red",
    "miles":400,
    "vin":"1235"
  }
}
我试图在服务器端的单个对象中获取这个json,同时从Rest客户端进行post

public JsonResult Post([FromBody]Object Cars)
{
    return Cars;
}

如何在单个对象中获取此json?

这是以前多次提出的问题:

您最好使用类来表示对象

public class Vehicle
{
    public string color;
    public string type;
    public int miles;
    public int vin;
}
然后你可以使用它:

public JsonResult Post([FromBody]Vehicle[] vehicles)
{
    return vehicles;
}
数据如下:

[
  {
    "color":"Blue",
    "type": "car"
    "miles":100,
    "vin":"1234"
  },
  {
    "color":"Red",
    "type": "car"
    "miles":400,
    "vin":"1235"
  },
  {
    "color":"Red",
    "type": "truck"
    "miles":400,
    "vin":"1235"
  }
]

如果您需要将整个JSON转换为一个对象,那么我在这里将您的JSON转换为类

public class Car
{
    public string color { get; set; }
    public int miles { get; set; }
    public string vin { get; set; }
}

public class Truck
{
    public string color { get; set; }
    public int miles { get; set; }
    public string vin { get; set; }
}

public class RootObject
{
    public List<Car> Cars { get; set; }
    public Truck truck { get; set; }
}
公车
{
公共字符串颜色{get;set;}
公共整数英里数{get;set;}
公共字符串vin{get;set;}
}
公车
{
公共字符串颜色{get;set;}
公共整数英里数{get;set;}
公共字符串vin{get;set;}
}
公共类根对象
{
公共列表车辆{get;set;}
公共卡车{get;set;}
}
将API更改为:

public JsonResult Post([FromBody]RootObject root)
{
    return root.Cars; // List<Car>
}
public JsonResult Post([FromBody]RootObject root)
{
返回root.Cars;//List
}

现在,您可以访问
Cars
truck

您只对JSON中的汽车感兴趣,还是对整个对象感兴趣?我需要一个对象中的JSON,从中可以在服务器端获取Cars参数值,如颜色、英里数、vin等。是的,我需要一个完整的对象。如果您传递相同的数据,但车辆类型不同,传递车辆类型时最好使用一个值,而不是属性字段,例如
“type”:“car”
“type”:“truck”
并将其传递到
“vehicles”中:[]
数组是确定的。但我不会在单个对象中获取json数据。