With the OOB "Dynamic Delivery" Output Format the underlying Topic Content(DITA XML) is published and stored as "XHTML" in the Broker Database. While retrieving the topic content via PCA service, It returns a JSON having a TopicBody field value, which is an XHTML conversion of the DITA XML of the Topic.
So basically we are getting a JSON containing an XHTML field. With this mix of JSON and XHTML types, it is really hard to serialize it to a model object.
It would be great to publish Topic Content as JSON in place of XHTML. It would simplify the serialization of the topic objects in the frontend applications like DXA.
Reference Discussion: https://community.sdl.com/product-groups/sdl-tridion/tridion-docs/f/forum/29488/headless-implementation-of-tridion-docs