Laravel 开发 API 如何处理请求中有嵌套的 JSON 数据

目前有一个项目需要开发后台API,后台使用Laravel 5和Dingo api开发Restful风格的api,前端是用AngularJS开发,现在遇到的问题是前端请求api提供的是有嵌套的Json数据,Laravel要怎么处理有嵌套的Json数据,然后保存到Model对象里? 前端提供的Json数据的一个例子:

     {
      "question" : [
      {
        "type": "SINGLE_CHOICE_RADIO_BUTTONS",
        "question_text": "1,请在此输入问题标题",
        "imageflag": false,
        "imageurl": "",
        "randomize_options": false,
        "required": false,
        "tip": "",
        "hastip": false,
        "visible": true,
        "direction": "h",
        "data_set_id": "",
        "questionOption": [
        {
            "id": "",
            "question_id": "",
            "option_value": "",
            "link_url": "",
            "allow_blank": true,
            "is_default": false,
            "sort_order": 0,
            "option_order": 0,
            "imageflag": false,
            "imageurl": "",
            "tip": "",
            "option_text": "选项1",
            "allow_other_text_box": false
        }
        {
            "id": "",
            "question_id": "",
            "option_value": "",
            "link_url": "",
            "allow_blank": true,
            "is_default": false,
            "sort_order": 0,
            "option_order": 0,
            "imageflag": false,
            "imageurl": "",
            "tip": "",
            "option_text": "选项2",
            "allow_other_text_box": false
        }
        ]}
        }
        {
        "id": "",
        "allow_other_text_box": false,
        "survey_id": "1",
        "question_order": 1,
        "sort_order": 1,
        "type": "SINGLE_CHOICE_RADIO_BUTTONS",
        "question_text": "2,请在此输入问题标题",
        "imageflag": false,
        "imageurl": "",
        "randomize_options": false,
        "required": false,
        "tip": "",
        "hastip": false,
        "visible": true,
        "direction": "h",
        "data_set_id": "",
        "questionOption": 
        {
            "id": "",
            "question_id": "",
            "option_value": "",
            "link_url": "",
            "allow_blank": true,
            "is_default": false,
            "sort_order": 0,
            "option_order": 0,
            "imageflag": false,
            "imageurl": "",
            "tip": "",
            "option_text": "选项1",
            "allow_other_text_box": false
        }
        }
    }
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 5
Summer

代码格式

7年前 评论

@chrisyogi 朋友你遇到的这个json写入数据库问题最终有什么比较好的解决办法吗?

6年前 评论

@李啊 把json转换成数组,然后用嵌套循环,先循环遍历question数组,将值赋值给question Model的属性,在每个question里循环遍历questionOption数组,将值赋值给questionOption model的属性。效率不高,但可以解决问题

6年前 评论

@chrisyogi 谢谢,目前我在后台也是打算采用这种办法将值写入数据库,但是遇到一个问题就是:前台传过来的json包含了多行数据,因此还在研究如何在后台把每一行剔出来,分行写入数据库。不知道你遇到过类似操作需求没,求指教。 bowtie:

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!