Yes, I can strip out the special characters and make it work. Thats what I'm doing now. That will work as long as the same property does not exist. For example if I had "$code" and "code" in the same json then stripping the characters wouldn't work. Yes, I could rig it up to work somehow with a bunch of find replacing. Buts thats sloppy.
But my point is, Pega has the capability to handle special characters in the JSON somehow OOTB for when it receives JSON with a REST rule. PEga is using the pzExternalName qualifier on properties to map properties with special characters. So, I'm just wondering, what exactly is Pega doing OOTB to accomplish this.