Squiz Matrix – How to escape quotes with content keywords

I recently needed to connect Squiz Matrix to a REST API using a POST request.

The process of connecting the form to API is fairly simple, but I was stumped at how to handle quotes inside the form submission keywords.

I had created a JSON format POST, e.g.

{

    "First_Name" : "%response_12345_q1%",

    "Last_Name" : "%response_12345_q2%",

}

But this would create broken JSON if the form user entered a quote into the form field.

The solution to this is ensuring the input is escaped – so the quotes would have a backslash before them – \”

But how do you do this with Squiz Matrix?

Fortunately they have keyword modifiers. They offer a surprisingly long list of modifiers that allow you to customise the content from a keyword – most importantly is ^escapequotes.

To use, simply add to the end of your content keyword, for example:

{

    "First_Name" : "%response_12345_q1^escapequotes%",

    "Last_Name" : "%response_12345_q2^escapequotes%",

}

Which will automatically add the required backslashes to any double quotes – e.g. Jon “Bob” would become Jon \”Bob\”.

Reference: