Fix #1367: keys of a JSON object should always be a string. + JSON tests cleanup #1368
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.
JSON object keys must be strings. The Seaside JSON writer did not respect this. This PR now allows to only convert dictionaries with String keys, when a flag is set. Otherwise an error is thrown. The idea is to remove the flag in the next major version of Seaside, but already introduce the behavior now so people have a migration path.
Fixes #1367
Also added test to show the WAJsonParser did not accept numbers as keys (which is correct, but inconsistent with the JSON writer).
Also removed the
Pharo70-JSON
package with an extension forOrderedDictionary
and moved it toPharo-JSON
. I noticed this because of failing test for Pharo 7. Since OrderedDictionary is part of Pharo since Pharo 7 and we dropped Pharo 6 and earlier some time ago, this can now reside in the Pharo-JSON package.FInally, refactored tests for JSON to remove the override of
assert:equals:
and replaced it withassert:gives: