JSON: Add toString() method for StringPairArray #988
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Had a few
StringPairArray's I had to convert to JSON, was surprised JUCE can't do that yet. I usedJSONFormatterstuff as much as possible, so it should behave nicely. Example:juce::StringPairArray data; DBG("*** Empty array ***"); DBG("Single line" << juce::newLine << juce::JSON::toString(data, true)); DBG("Multiple lines" << juce::newLine << juce::JSON::toString(data, false)); DBG(juce::newLine << "*** One item ***"); data.set("Key1", "Value1"); DBG("Single line" << juce::newLine << juce::JSON::toString(data, true)); DBG("Multiple lines" << juce::newLine << juce::JSON::toString(data, false)); DBG(juce::newLine << "*** A bunch of items ***"); data.set("Key2", "Value2"); data.set("Key3", "Value\that\needs\escaping"); DBG("Single line" << juce::newLine << juce::JSON::toString(data, true)); DBG("Multiple lines" << juce::newLine << juce::JSON::toString(data, false));Output:
It can also live as
StringPairArraymethod, but I think you prefer to keep all JSON stuff in one class. Also, noticed weird string escaping behaviour (see how one backslash has disappeared in last item?), but that's another matter.