V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sunxuan
V2EX  ›  程序员

请教一个 APP 通过接口获取动态 JSON 数组 展示一个复杂表单,然后填写数据通过接口上传, 可以给点设计思路吗?

  •  
  •   sunxuan · 2018-06-15 20:23:59 +08:00 · 2171 次点击
    这是一个创建于 2372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    遇到一个开发需求,通过接口获取一个动态的 json 数组,然后移动端 列表布局展示,每个 item 中 布局一个 TextView,最后点击保存,获取列表中所有 item 的 id 与 TextView 中的数据然后通过接口上传。Android 同理。请问这种动态的接口怎样设计比较好?

    在 iOS 中 好像 类似的 可以用 复杂表单实现, 然后接口应该怎么设计呢。 比如平时的接口传参 都是 ["from": "app", ""password": "123456", "username": "user"] 这种。 那这样的动态的复杂表单怎么传参,接口才好存储到数据库呢?

    可以给点设计思路或者参考链接吗?感谢

    第 1 条附言  ·  2018-06-15 21:12:36 +08:00
    { "list":[ { "id":1, "value":"姓名" }, { "id":2, "value":"性别" }, { "id":3, "value":"地址" } ] }

    大概像这种 接口 返回, 然后 Android 通过 RecycleView,iOS 通过 TableView 展示 ,Android 中 每个 item 布局一个 TextView 和 EditText,iOS 中每个 Cell 布局一个 Label 和 TextField, 然后用户填写完列表, 点击保存 获取 每个 item 中的填写的数据并与 JSON 返回的 list[i] 中 的 id 关联,然后通过接口传参。
    10 条回复    2018-06-16 22:38:27 +08:00
    a793657136
        1
    a793657136  
       2018-06-15 20:49:47 +08:00 via Android
    Map
    Recycle view
    sunxuan
        2
    sunxuan  
    OP
       2018-06-15 21:14:52 +08:00
    @a793657136 Android iOS 通过 RecycleView 或者 TableView 布局我是清楚的, 具体的 传参是将 id 与输入值作为 键值对,然后转成 JSON String 传参吗?
    a793657136
        3
    a793657136  
       2018-06-15 23:42:20 +08:00 via Android
    这你去找写接口的人问啊,是 get 还是 post,应该传什么参数等等的,接口都没有文档的吗
    sunxuan
        4
    sunxuan  
    OP
       2018-06-16 00:54:52 +08:00 via Android
    呃,其实我问得就是这种需求,大多数接口人员会怎样写文档。
    pynix
        5
    pynix  
       2018-06-16 00:59:31 +08:00
    graphql?
    sunxuan
        6
    sunxuan  
    OP
       2018-06-16 01:15:38 +08:00
    @pynix 呃,这个技术有点新了吧。 好奇大厂类似这样的需求 接口文档是怎么设计的?
    qiayue
        7
    qiayue  
       2018-06-16 01:24:14 +08:00
    接口需要能够接收 json 格式数据
    sunxuan
        8
    sunxuan  
    OP
       2018-06-16 01:49:06 +08:00 via Android
    @qiayue 目前也是这样设计的。在这里提问就是想了解下 别人遇到这样的接口 是不是也是这样设计的。想看看有没有最优解。
    kpower
        9
    kpower  
       2018-06-16 12:02:13 +08:00 via iPhone
    用 html5 或者 rn
    pynix
        10
    pynix  
       2018-06-16 22:38:27 +08:00
    @sunxuan 没法完全动态,,,,

    至少客户端需要能解析,比如
    ```
    [
    {
    "id": 1,
    "key": "name",
    "type": "text"
    }
    ]
    ```

    生成一个文本框,json key 为`name`,vaule 为文本框内容。


    至少需要解析各种 type,比如 radio_group,之类的。。。。估计还需要加一个 collection: [{"value": 1, text": "男"}]

    总之很麻烦吧。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   874 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:46 · PVG 04:46 · LAX 12:46 · JFK 15:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.