私はSpring-MVCベースのサーバーに接続してオブジェクトのリスト、オブジェクト自体を取得したいJavaSEアプリケーションに取り組んでいます。ネットで調べたらJSONにたどり着きました。私はそれが機能していることに同意しますが、2つのwhileループを通過する必要があり、それほど洗練されていないように見えるため、非常に非効率的です. このため、調査の結果、Spring リモート処理を使用してタスクを達成できることがわかりました。
私がやりたいことの 1 つは、オブジェクトを 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)。ありがとう。