当前位置:   article > 正文

处理json异常问题,由于发送kafka消息是一个字符串,等到消费时json字符串会有多个““引号,故需要先处理json再转对象

处理json异常问题,由于发送kafka消息是一个字符串,等到消费时json字符串会有多个““引号,故需要先处理json再转对象

发送一个正确的json对象

发送kafka消息也是一个json传,也没问题

等到消费kafka时,也能接收到一个json字符串但是会多一个 " 引号, 就会导致json转对象失败所以需要先去除 开通和结尾的 " 引号

去除后的json 就是一个正常的json,才能转换对象

 处理 " 引号的代码逻辑

  1. @KafkaListener(topics = {"brok.............1"},containerFactory = "kafkaListenerContainerFactory")
  2. // @Transactional(rollbackOn = Exception.class)
  3. public void receive(String message) throws JsonProcessingException, ParseException, InterruptedException {
  4. ObjectMapper objectMapper=new ObjectMapper();
  5. objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  6. try {
  7. message = message.replace("\\", "");
  8. String startStr = message.substring(0,1);
  9. // 去除开头 " 引号
  10. if( "\"".equals( startStr )){
  11. message = message.substring(1);
  12. }
  13. // 去除结尾 " 引号
  14. String lastStr = message.substring(message.length()-1,message.length());
  15. if( "\"".equals( lastStr )){
  16. message = message.substring(0, message.length() - 1);
  17. }
  18. System.out.println( message );
  19. MessageBean messageBean = JSON.parseObject(message, MessageBean.class);
  20. consumerService.consumer(messageBean);
  21. }catch (Exception e){
  22. e.printStackTrace();
  23. }
  24. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/246418
推荐阅读
相关标签
  

闽ICP备14008679号