Well, Jeppe already knew about JSON since he's using it already. And there are other modules that do the same thing (JSON::DWIM will work the same on blessed or not blessed objects for exemple). But as far as I understand the issue here is to escape some chars (the single quote at least apparently) in strings. And unlike Data::Dump, JSON doesn't seem to provide a call back to allow custom output for any data type (objects can have a method to convert themselves to JSON, but here the strings are not blessed).
Jeppe, wouldn't s/'/\\'/g; on the output JSON be enough?
| [reply] [d/l] |
OK, right, sorry.
My fault was that I read it as JSON has a bug in escaping quotes!
( JS - contrary to Perl - doesn't give single and double quotes different meanings, but that doesn't mean they need to be escaped, so no bug! )
so whats happening here is that Jeppe wants the data altered, and IMHO this should already be done on Perl's side before escaping.
Your suggestion of a general s/'/\\'/g would only work if the JSON output doesn't use single quotes as delimiter.¹
Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
update
¹) ah sorry, I didn't know that single quotations are invalid in JSON
from JSON::PP
allow_singlequote
$json = $json->allow_singlequote([$enable])
If $enable is true (or missing), then "decode" will accept JSON
+ strings
quoted by single quotations that are invalid JSON format.
| [reply] [d/l] [select] |
And it would work if ' is the only char that has to be escaped, (I supposed it was to be able to embed the JSON output in other code, delimited by single quotes, but I don't know the full story, that's a bit XYish actually). hippo might have given a better answer than mine.
| [reply] |