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

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日

悬赏问题

  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
  • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
  • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
  • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
  • ¥15 信息管理系统的查找和排序
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。
  • ¥15 MATLAB卫星二体模型仿真
  • ¥15 怎么让数码管亮的同时让led执行流水灯代码