-
-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GsonParser converting longs to doubles #44
Comments
Did you test it? Are sure no any exception would be thrown when calling nextString() following "NUMBER" token? |
Yes, using the attached snippet, it worked as expected. Per the JsonReader.nextString javadoc: |
I think it would introduce too much overhead for the potential two more parsing. If you really need long type, I think you can implement a custom JsonProvider. |
Doing this at the provider level could work, however I believe the core issue is in the parser as that's where its forcing the long into a double via the call to |
Unfortunately it looks like |
Actually, I'm curious about your use case? What kind of benefit can you gain from such conversion? |
The use case is that the json we parse and filter needs to retain its original formatting so that when we do schema inference it doesn't change types from a long to a double. |
So due to such a limitation of Gson, maybe you can try other JsonSurfer implementation, e.g. JacksonSurfer |
Will give it a look, ideally I want an implementation that I can use in a streaming read and provider scenario. As the data is read and filtered with json path, the output is then fed to a provider that is simply streaming out the other side, that way if I hit a massive json document with a json path like |
The
GsonParser
is converting longs to doubles within thenumberHolder
implementation. Instead of callingreturn jsonProvider.primitive(jsonReader.nextString());
perhaps something like this would work better:The text was updated successfully, but these errors were encountered: