Horse_Ancheng 2022-04-30 01:40 采纳率: 100%
浏览 223
已结题

springboot 接收复杂的json数据

Springboot接受json数据
问题相关代码

```json数据
[{"q_type":"01","q_must":"1","q_name":"这是名字1","q_option":"[\"2\",\"3\"]","t_id":10017,"t_uid":1},
{"q_type":"02","q_must":"1","q_name":"这是名字2","q_option":"[\"5\",\"6\"]","t_id":10017,"t_uid":1},
{"q_type":"03","q_must":"1","q_name":"这是名字3","q_option":"[]","t_id":10017,"t_uid":1}]
    @CrossOrigin
    @PostMapping("api/newQuestion")
    @ResponseBody //新建问卷
    public JSONObject getJsonVal(@RequestBody JSONObject data) throws IOException {
    JSONObject json = new JSONObject();

//***************************
//只想知道这里怎样获取q_type、q_must、q_name、数组q_option、t_id、t_uid
//***************************

//返回操作结果
        if (flag)
            json.put("msg","success");
        else
            json.put("msg","fail");

        return json;
}

###### 运行结果及报错内容 
2022-04-30 01:18:28.161  WARN 19884 --- [nio-8081-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver :
 Resolved [org.springframework.http.converter.HttpMessageNotReadableException: 
JSON parse error: Cannot deserialize instance of `com.alibaba.fastjson.JSONObject<java.lang.String,java.lang.Object>`
 out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: 
Cannot deserialize instance of `com.alibaba.fastjson.JSONObject<java.lang.String,java.lang.Object>` 
out of START_ARRAY token
 at [Source: (PushbackInputStream); line: 1, column: 2]]
  • 写回答

1条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2022-04-30 03:17
    关注

    定义一个实体类

    package com.example.demo.web;
    
    import lombok.Data;
    import lombok.ToString;
    
    @Data
    @ToString
    public class RequestData {
    
        private String q_type;
        private String q_must;
        private String q_name;
        private String q_option;
        private int t_id;
        private int t_uid;
    
    }
    

    MainController.java

    package com.example.demo.web;
    
    import com.alibaba.fastjson.JSONObject;
    import org.springframework.web.bind.annotation.*;
    
    import java.io.IOException;
    import java.util.List;
    
    @RestController
    @RequestMapping("/api")
    public class MainController {
    
        @CrossOrigin
        @PostMapping("/newQuestion")
        @ResponseBody //新建问卷
        public JSONObject getJsonVal(@RequestBody List<RequestData> data) throws IOException {
            JSONObject json = new JSONObject();
            System.out.println("data = " + data);
    //***************************
    //只想知道这里怎样获取q_type、q_must、q_name、数组q_option、t_id、t_uid
    //***************************
    
    //返回操作结果
            if (true)
                json.put("msg", "success");
            else
                json.put("msg", "fail");
    
            return json;
        }
    
    }
    
    
    

    postman 请求

    img

    接受到参数

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月8日
  • 已采纳回答 4月30日
  • 创建了问题 4月30日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装