このようなJSONデータがあります
{"セッション ID":7242750700467747000}
数値はサーバー応答から事前に取得され、Java Long としてサーバー側で生成されます。クライアントはこれsessionID
を認識し、リクエストとともに送信します。問題は、クライアントのリクエストがサーバーに到着したときに、この値を再度解析して Long 型にする必要があることです。具体的には、JsonPath を使用します。
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path-assert</artifactId>
<version>0.8.1</version>
<scope>test</scope>
</dependency>
このようにJSONデータを解析すると
長い sessionID = JsonPath.read(json, "$.sessionID");
例外があります:
java.lang.ClassCastException: java.lang.Integer は java.lang.Long にキャストできません
したがって、数値は JsonPath によって Integer として解析されるようです。Integer は Long よりも小さいため、これは間違いなく間違った結果につながります。JsonPath でデータを解析して Long として返す方法はありますか?