Support reversible JsonML mapping by avoiding implicit type conversion#70
Closed
yaccob wants to merge 1 commit intostleary:masterfrom
yaccob:master
Closed
Support reversible JsonML mapping by avoiding implicit type conversion#70yaccob wants to merge 1 commit intostleary:masterfrom yaccob:master
yaccob wants to merge 1 commit intostleary:masterfrom
yaccob:master
Conversation
… text nodes) as strings. For this purpose I overloaded parse() so that all existing toXXX() methods could remain unchanged and will behave as before.
|
This is a perfectly valid patch, we've had this issue in production. There is no need to typecast to value types or make any hypothesis if the string a boolean or int. |
|
+1 |
|
👍 got exactly the same problem; why isn't it already merged ? |
|
It's funny to see how the JSON ecosystem is looking for work-arounds around the implicit type conversions: http://blog.getprismatic.com/schema-0-2-0-back-with-clojurescript-data-coercion/ |
Contributor
|
JSON was designed to be language independent, which is why it works so well for data interchange. |
johnjaylward
pushed a commit
to johnjaylward/JSON-java
that referenced
this pull request
Jul 18, 2016
BGehrels
pushed a commit
to BGehrels/JSON-java
that referenced
this pull request
Apr 29, 2020
test support for Numeric enhancements, Refactoring, Fix spelling: stleary/pull/336
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
To introduce the opportunity to avoid implicit type conversion I have overloaded the parse method and added a new toJsonML(String) and a new toJsonML(XMLTokener) method using the overloaded parse method.
The changes have no impact on previously existing public methods - those should behave exactly as before.
One of the problems with the implicit type conversion is that xml data converted to json cannot be reverted to the original xml. Actually all non-string Json values are completely lost. This may be considered to be a separate problem of JSON.toString(JSONArray) which I did not try to solve directly, because for xml data converted using the new JsonML operations it is not relevant.
The following test case (groovy) illustrates the problems (testToJSONArray_*) and the solution (testToJsonML):