0

我正在开发一个 JavaSE 应用程序,我想在其中连接到基于 Spring-MVC 的服务器以获取对象列表,即对象本身。我在网上查了一下,发现了 JSON。虽然我同意它正在工作,但它的效率非常低,因为我必须通过 2 个 while 循环并且看起来并不那么复杂。出于这个原因,我研究并发现我可以使用 Spring 远程处理来完成任务。

我想做的一件事是直接发送对象,而不是通过 JSON 转换它们,然后发送。

我将我的代码粘贴在下面的 JSON 中,如果我知道这看起来更好,或者 Spring 远程处理从长远来看也更复杂,我将不胜感激。客户端的替换代码会很好。谢谢。

客户端代码:

 public void getCanvas(){
     JsonFactory jsonFactory = new JsonFactory();
        String canvas = "";
        try {
            JsonParser jsonParser = jsonFactory.createJsonParser(new URL(canvasURL));
            JsonToken token = jsonParser.nextToken();

           while (token!=JsonToken.START_ARRAY && token!=null){
               token = jsonParser.nextToken();
               if(token==null){break;}
               System.out.println("Token is "+jsonParser.getText());
           }
            while (token!=JsonToken.END_ARRAY){
                token = jsonParser.nextToken();
                if(token == JsonToken.START_OBJECT){
                    canvas = jsonParser.toString();
                    System.out.println("Canvas is "+canvas);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("Canvas is "+canvas);
    }

服务器代码:

 @RequestMapping(value = "/getcanvas",method = RequestMethod.GET)
    public @ResponseBody String getCanvasforFX(){
        System.out.println("Canvas was requested");
        Canvas canvas = this.canvasService.getCanvasById(10650);
        canvas.setCanvasimage(null);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            System.out.println("Canvas value is "+objectMapper.writeValueAsString(canvas));
            return objectMapper.writeValueAsString(canvas);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

在客户端代码中,我正在获取信息,但我必须再次读取字段,将它们设置在对象中并更新 UI,即使我也在对服务器进行编程,我想直接接收一个对象,并删除中间人(JSON)。谢谢。

4

0 回答 0