4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ObjectMapperクラス

Posted at

ObjectMapperとは

ObjectMapperは、Jacksonライブラリの主要なアクタークラスです。 ObjectMapperクラスは、基本的なPOJO(プレーンオールドJavaオブジェクト)、または汎用のJSONツリーモデル(JsonNode)との間でJSONを読み書きする機能と、変換を実行するための関連機能を提供します。

また、さまざまなスタイルのJSONコンテンツの両方で動作し、ポリモーフィズムやオブジェクトIDなどのより高度なオブジェクトの概念をサポートするように高度にカスタマイズできます。 ObjectMapperは、より高度なObjectReaderおよびObjectWriterクラスのファクトリーとしても機能します。

※簡単にいうと?
JacksonのObjectMapperはJava Objec↔Jsonパーシングを簡単にしてくれるクラスです。

使ってみた!

今回、WebSocketを利用してチャットアプリケーションを作成していますが、
実際、使っている箇所のソースコードを共有します。


@Slf4j
@RequiredArgsConstructor
@Service
public class ChatService {
  // 宣言
    private final ObjectMapper objectMapper;
    private Map<String, ChatRoom> chatRooms;

    @PostConstruct
    private void init() {
        chatRooms = new LinkedHashMap<>();
    }

    public List<ChatRoom> findAllRoom() {
        return new ArrayList<>(chatRooms.values());
    }

    public ChatRoom findRoomById(String roomId) {
        return chatRooms.get(roomId);
    }

    public ChatRoom createRoom(String name) {
        String randomId = UUID.randomUUID().toString();
        ChatRoom chatRoom = ChatRoom.builder()
                .roomId(randomId)
                .name(name)
                .build();
        chatRooms.put(randomId, chatRoom);
        return chatRoom;
    }

    public <T> void sendMessage(WebSocketSession session, T message) {
        try {
       // パーシング
            session.sendMessage(new TextMessage(objectMapper.writeValueAsString(message)));
        } catch (IOException e) {
            log.error(e.getMessage(), e);
        }
    }
}

結果

image.png

正常にJsonが戻ってきますね。

※ちなみに、WebSocketテストで使っているのは以下です。
Simple WebSocket Clinet

※ソースコードは以下となります。
https://github.com/twan65/websocket-exam

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?