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
}
}
}
代码格式
@Summer 帖子已修改
@chrisyogi 朋友你遇到的这个json写入数据库问题最终有什么比较好的解决办法吗?
@李啊 把json转换成数组,然后用嵌套循环,先循环遍历question数组,将值赋值给question Model的属性,在每个question里循环遍历questionOption数组,将值赋值给questionOption model的属性。效率不高,但可以解决问题
@chrisyogi 谢谢,目前我在后台也是打算采用这种办法将值写入数据库,但是遇到一个问题就是:前台传过来的json包含了多行数据,因此还在研究如何在后台把每一行剔出来,分行写入数据库。不知道你遇到过类似操作需求没,求指教。 bowtie: