http://qs321.pair.com?node_id=11115242


in reply to Convert JSON to Perl and back with unicode

Yes, those modules do that, see Re^3: Handling utf-8 characters when scraping and Re^3: Data::Dumper with unicode. You could try Data::Printer, although as I mention in those links, you may miss differences in whitespace characters or others, such as the difference between ä and ä.

You mention JSON in the title, what does this have to do with it? You definitely shouldn't use any of the above modules for JSON, even if it's hinted in one or two places, because they are primarily debugging tools, and less serialization modules (even though they're sometimes used as such, even by myself). Use JSON::MaybeXS...

  • Comment on Re: Convert JSON to Perl and back with unicode

Replies are listed 'Best First'.
Re^2: Convert JSON to Perl and back with unicode
by bliako (Monsignor) on Apr 08, 2020 at 23:00 UTC

    thanks for the suggestions. I mentioned JSON as what I am trying to do is to visualise a long JSON by converting it to a Perl var and then possibly edit the perl var, and finally save back to JSON (with the changes). But then my post got reduced to that minimum example without JSON. So, yes, actually I am serialising and de-serialising but I can't seem to find an ascii-text-based, unicode-friendly serialiser other than Dump and Dumper. Is the output of Data::Printer good for reading it back as a Perl var? I could not see it does that in the doc. I will edit my post to add this paragraph to it.

      Is the output of Data::Printer good for reading it back as a Perl var?

      No, I don't believe it is - hence my comment about those modules being mostly debugging tools.

      what I am trying to do is to visualise a long JSON by converting it to a Perl var and then possibly edit the perl var, and finally save back to JSON (with the changes)

      You might give YAML a try, such as tinita's YAML::PP, that should be better for round-tripping and more readable than JSON.

      Update: I see that you already commented on YAML in your edit of the root node. Sorry, but the dumper modules aren't going to give you the behavior you want, so you really might want to reconsider YAML. Otherwise, unless there's a CPAN module that I've missed, if you really, really want Perl, you could roll your own, but that comes with so many caveats I can't reccomend it. Or try a JSON pretty printer to make it more readable...