当前位置: 首页 > 知识库问答 >
问题:

在数组字段请求中添加模型模式捕获元素

翟鹏
2023-03-14

我正在为REST应用编程接口做一个适配器。我已经为POST和PUT方法的主体使用了模型模式。@请求主体模型1请求主体在适配器处。

现在,我遇到了需要数组的字段的body

大摇大摆的UI主体输入

时间1)在大摇大摆负载下,模型启动:

{
    "field1"         : "",
    "field2Optional" : "",
    "fieldArray"     : [
        { "field2a"                  :  "input2a" }
    ]

}

时间2)用户编辑:

{
    "field1"         : "input1",
    "field2Optional" : "",
    "fieldArray"     : [
        { "field2"        :  "input2a" },
        { "field2"        :  "input2b-userAddition " }
    ]
}

模型1。棒极了

@XmlElement
String field1 = ''

@XmlElement
String fieldOptional = ''

@XmlElement
ArrayList<Model2> fieldArray = new ArrayList<>( Arrays.asList(new Model2()) ).get(0)

}

Model2.groovy

@XmlElement
String field2 = ''

我希望Model1捕获/保存用户添加到fieldArray的元素,比如,{“field2”:“input2b userAddition”}。使用当前代码,我只能获取数组的第一个元素get(0),除非用户这么说,否则我不想创建Model2的许多实例。

我想到的解决方案是在Model1中使用@RequestBody映射RequestBody。groovy获取全身请求,并将实际用户输入与模型进行比较。然后添加在模型中找不到但在实际用户输入中找到的字段。我想知道有没有更好的办法?

共有1个答案

吕钧
2023-03-14

Model1中使用@RequestBody映射RequestBody。groovy获取全身请求,并将实际用户输入与模型进行比较,对我来说似乎是一个非常好且干净的想法。我相信没有更好的办法了。

 类似资料:
  • 问题内容: 我正在尝试向文档中添加一个新字段,但这不起作用: 创建我的UserModel原型: 然后叫它 只要存在,此字段便会成功更新,但不会添加任何新字段。 问题答案: 您可以使用选项在架构中添加和删除字段 选项:严格 严格选项(默认情况下启用)可确保传递给我们的模型构造函数的未在架构中指定的值不会保存到数据库中。 您也可以在更新查询中执行此操作 您可以在这里查看文档

  • 我用的是Django 2。十、 我有一个用于验证请求的序列化程序。(不是ModelSerializer) 是对模型的引用。 我希望用户在字段中传递数据库id,但在验证后,got被转换为对象。 我试图重写方法,并将对象分配给字段,但它给出了错误

  • 问题内容: 给定Django模型,我试图列出其所有字段。我已经看到了使用_meta模型属性执行此操作的一些示例,但是meta前面的下划线是否表示_meta属性是私有属性,不应直接访问?…例如,因为_meta的布局将来可能会更改,并且不是稳定的API? _meta是该规则的例外吗?它是否稳定且可以使用,还是访问它的不正确做法?还是有一种功能或其他方法可以在不使用_meta属性的情况下自省模型的字段?

  • 问题内容: 假设采用以下架构,我尝试使用Mongoose保存一些GeoJSON数据 这就是我尝试保存文档的方式 但是,我在数据库中得到的是 看起来整个位置标签和数据都丢失了。这是定义架构的错误方法还是保存文档的错误方法? 问题答案: 当使用在嵌入式对象中命名的字段时,您需要使用一个对象来定义其类型,或者Mongoose认为您正在定义对象本身的类型。 因此,将您的架构定义更改为:

  • 本文向大家介绍Django中模型Model添加JSON类型字段的方法,包括了Django中模型Model添加JSON类型字段的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Django中模型Model添加JSON类型字段的方法。分享给大家供大家参考。具体如下: Django里面让Model用于JSON字段,添加一个JSONField自动类型如下: 之后就直接为Model定义JSONF

  • 我需要帮助找出如何完成第3步。。请我正在使用的教科书并没有很好地解释计数函数,它只是以我下面的编码方式显示了这个“len”函数,这是不正确的。 > 在程序的开始处添加输入()语句。输入()应该提示用户输入一个正的起始数。 使用用户键入的数字作为for循环的起始值。循环应该打印输入的数字和该数字的负值之间的所有奇数。 我能够完成#的1和2,但我不能得到#3。这是我到目前为止...