Servlet如何识别使用post方式提交的json数据.

在向服务器端提交了json数据后,可以使用流的方法来读取然后使用Gson来获取数据.但是如果需要分辨的不同的应该如何处理了,我是使用Gson转换,然后根据对象的不同变量是否为空来判断的,暂时没有发现问题.请问有其他好的方法来处理这样类似的情况吗?

request.setCharacterEncoding("UTF-8");
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        try(BufferedReader reader = request.getReader()) {
            char[]buff = new char[1024];
            int len;
            while((len = reader.read(buff)) != -1) {
                sb.append(buff,0, len);
            }
            sb.append("}");
        }catch (IOException e) {
            e.printStackTrace();
        }
        Info info = gson.fromJson(sb.toString().trim(),Info.class);
阅读 7.5k
5 个回答

两个办法:

  1. url一个接口就对应一个类

  2. json上添加类型信息,先得到类型信息,然后反序列化

JsonParser 可以将 JSON 识别为 JsonElement,有一些 isXxxx 方法和 getAsXxxx 方法,一般提供的对象都是 JsonObject,所以可以转换成 JsonObject,再获取这个 JsonObject 对象的某个属性来判断……过程有点麻烦,但看文档应该看得明白

如何识别是servlet的工作,post的话只要覆盖servletdoPost方法。

同一个url,用一种请求方式,应该只有一种逻辑一种数据结构吧

可以用JSONObject,不过需要相关的jar包

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题