我使用shopifySharp库Order实体将Shopify orders映射到类对象。问题是,有些属性映射得很好,但有些则不是。
我不明白为什么会发生这种行为。
public class Order
{
[JsonProperty("id")]
public long? Id { get; set; }
[JsonProperty("admin_graphql_api_id")]
public string AdminGraphQLAPIId { get; set; }
[JsonProperty("app_id")]
public long? AppId { get; set; }
}完整的对象在GitHub上可用。
我的JSON对象如下所示。我删除了一些属性,否则它的发布时间太长,无法在这里发布:
{
"id": 4538882687054,
"admin_graphql_api_id": "gid://shopify/Order/4538882687054",
"app_id": 1354745
}和控制器代码:
[Route("api/[controller]")]
[ApiController]
public class OrderController : ControllerBase
{
[HttpPost]
[Route("Order")]
public IActionResult Order(Order order)
{
return Ok(order);
}
}我还附上了截图。


发布于 2022-08-31 11:39:47
您的API可能正在使用System.Text.Json序列化程序。您的对象没有什么问题,但它只能在Newtonsoft中正确工作。
为了使API使用Newtonsoft,需要在Startup中配置它。
services.AddControllers().AddNewtonsoftJson();编辑:
如果您没有绑定到任何特定的Newtonsoft特性,也可以只使用来自Microsoft:System.Text.Json的正式json序列化程序,它具有更高的性能,但为此您需要向对象添加属性[JsonPropertyName("your_prop")]。
https://stackoverflow.com/questions/73555038
复制相似问题