Java如何对接收到的数据判断其数据格式是文本、json还是xml等

系统需要接收不同客户端发送的数据,但是不同客户端使用不同的协议、数据格式等,系统怎么接收数据并保存

如果是http协议,一般在header中的content-type中能表明body的类型。

如果是socket通讯,没这些头信息,那就可以判断报文的起始字符,xml是<开头的,json是{开头的。

不同客户端是自己公司的还是其他公司的,不同的协议与数据格式是没有关联的,不管你是http协议,还是TCP、socket等协议,都可以规定数据格式,要求全部都是xml格式的,或者都是json格式的,或者都是文本格式的。因为统一的话,好处理。这就是咱们java有一个Interface的同理的作用,就是规定好。

如果非要几种数据格式都有,那就每种数据格式都封装一个方法,你要json 的,就调用A方法,xml的就调用B方法。这样如果日后有调整,影响的只是这一种数据格式的

建议看看@Controller(consumer 这个参数 对应的枚举 MimeType) 

列如:

@PostMapping(value = "/appinfos", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)

当然可以自己去扩展 

HttpMessageConverter