Rémi Bernon (@rbernon) commented about dlls/windows.web/json_value.c:
DEFINE_IINSPECTABLE( json_value_statics, IJsonValueStatics, struct json_value_statics, IActivationFactory_iface )
+static HRESULT validate_json( HSTRING input, JsonValueType *json_value_type, double *parsed_number, boolean *parsed_boolean )
It does indeed some validation for array and objects but otherwise it also actually parses the json and extract the values. What about naming it `parse_json_value` and let it accept a `struct json_value *` directly?
I think you could then later implement object and array parsing easily by calling `IJsonValueStatics_Parse` recursively.