我正在开发一个 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)。谢谢。