【问题标题】:how to stop ignoring jObject properties when we call API?当我们调用 API 时如何停止忽略 jObject 属性?
【发布时间】:2020-02-27 17:31:46
【问题描述】:

我正在使用邮递员调用 API,我正在使用 JObject 发送动态属性,如下所示

我正在使用 JSON 向 API 发送类数据,但忽略了重复数据的值

     public class Details
        { 
            public List<JObject> Mappings { get; set; } 

             // adding properties to jobject abd mappings     

            [JsonExtensionData]
            public IDictionary<string, JToken> AdditionalProperties { get; set; }

         }

我在邮递员中使用下面的 JSON

    {      
      "source": {
            "details": "Sample Customer",
            "compoet": "Sample Site",
            "Name": "Sample Software",
            "Version": "1.0.1",
            "Creator": "Sample Company"
        },
      "Mappings":[
      {
        "data": Test.Name1",
        "data": Test.Name23",    
        "newprop":"Account1",
      }
    {
        "data": "Test.Name2",    
        "newprop":"Account2",
      }
    ]
    }

当我传递重复键时,API 正在获取第二个值 "data": Test.Name23" 我希望 API 应该从映射中获取这两个值,有人可以帮忙吗?

【问题讨论】:

    标签: c# json asp.net-core-webapi jobjectformatter


    【解决方案1】:

    最好不要那样做,这里是my reason

    您可以将“数据”值作为数组传递

    【讨论】:

    • 谢谢,在我的情况下,用户可能会向 API 传递一个重复的对象,我需要在验证后抛出错误,但 API 本身没有接收到重复的属性。是否可以允许重复?
    • 您可以使用中间件捕获该异常,然后执行您需要的操作。这意味着您可以定义一个中间件并以自己的方式处理该异常
    • 某种意义上的中间件,假设用户使用邮递员访问我的 API 控制器,我可以在哪里构建中间件,并且当我在控制器本身中接收到删除重复数据的数据时,执行我们有任何 JSON 设置来验证此类问题吗?
    • 不,没有任何设置,您也可以从客户端获取 json 作为字符串。然后在你的控制器中验证它
    • 谢谢,如果我们在发送之前将重复值传递给 API,是否可以抛出异常,是否有任何过滤器或覆盖来捕获整个对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多