Reordering data (set of strings) to optimize for compression? Are there any algorithms for reordering data to optimize for compression?  I understand this is specific to the data and the compression algorithm, but is there a word for this topic?  Where can I find research in this area?

Specifically, I have a json list of 1.5 million strings, and I want to reorder the strings so that gzip (for HTTP) compression is optimized.  Sorting the strings does pretty well, but I don't really know if that is optimal.
This is an addition to the Navin Goyal's answer.

Since a JSON file can be regarded as a tree data structure, you can use the XBW-transform for trees, which is an extension of the Burrows-Wheeler transform for strings.