FYI, if you're developing an app in ASP.NET. ASP.NET considers JSON keys with the same name, but different casing, to be duplicate and will throw an error. So in the case of receiving an Order Update webhook call, and if that order has a refund transaction, it may have duplicate keys that will throw an error.
In our example, the duplicate keys specifically were in the following path:
These keys exist in the same Receipt json object and exist in both all lowercase and in TitleCase. It's redundant, ambiguous, and not friendly to ASP.NET development partners. As such, I've submitted a support email to this affect in hopes they will fix it.
Hope this helps save some other partner hours of time trying to figure out this problem 🙂
Chad Richardson Mozzo Software - Modular Software that grows with you from solopreneur to a 200 person mega team. Why keep outgrowing your Shopify Apps? Start with us, and just use the modules you need, then add more as you grow. http://MozzoERP.com
Ahh, a holdover from the Microsoft Windows paradigm. Of not observing the most traditional practices of case sensitivity. I do recall running into this awhile back. It's a shame that the JSON RFC (https://tools.ietf.org/html/rfc4627) was worded:
An object structure is represented as a pair of curly brackets
surrounding zero or more name/value pairs (or members). A name is a
string. A single colon comes after each name, separating the name
from the value. A single comma separates a value from a following
name. The names within an object SHOULD be unique.
SHOULD be unique versus MUST ALWAYS be unique. Definitely a gotcha. Good reminder!