This limitation should be in a giant alert at the top of all DynamoDB documentation. They are being misleading in their documentation:
> A map is similar to a JSON object. There are no restrictions on the data types that can be stored in a map element, and the elements in a map do not have to be of the same type.
> Maps are ideal for storing JSON documents in DynamoDB. The following example shows a map that contains a string, a number, and a nested list that contains another map.
Are you agreeing that they should fix the issue or their documentation suggesting that "Maps are ideal for storing JSON documents in DynamoDB"? Or both?
I would love for them to fix storage of empty string but I don't think that is going to happen given all the documentation they have around not allowing it. Must have been easier for them to just document the limitation.
I do agree that they could do a better job in their documentation explaining the difference between JSON spec and their JSON equivalent that they store. It is not clear that the JSON you post is not stored in the same exact way. They could be more clear about the types they append to your data (L, S, SS, N) and then reference the link I put above about the restrictions for each type.
> A map is similar to a JSON object. There are no restrictions on the data types that can be stored in a map element, and the elements in a map do not have to be of the same type.
> Maps are ideal for storing JSON documents in DynamoDB. The following example shows a map that contains a string, a number, and a nested list that contains another map.