I manage a number of Bed & Breakfast websites and run a kind of booking engine to help the client do bookings directly on their website (as opposed to going to another site
Ok I found a solution. It required two steps:
In your sample of the "proper" json, room_types is not a collection property. In json format, collections are enclosed with [ ], as you have it in your second "wrong" sample. That means that your room_types is in fact an object having two properties "Orchid Room" and "Presidential Suite". Note that the property name with the space is achievable by setting the Name property of the DataMember Attribute: <DataMember(Name:="Orchid Room")>