I put all of my data into a class with serializable fields and properties. The class has a ToResultBuffer function that saves the data to a result buffer. The class will also load the result buffer into the fields and properties. I can also serialize the class to json and zip it up into a result buffer when the data becomes to cumbersome to separate and is just data and not autocad information such as hard pointers and world points.*Like*
I also take the serialized json string and push to a database and save it there. Our web app can deserialize the data and present it in its native form for manipulation on the web which can then by synced back down to the dwg items.
So far its working out pretty good.