ENH: Enabling parsing ulonglong from json
State: closed

- [x] closes #26068
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [x] whatsnew entry


Labels:
name: Dtype Conversions
description: Unexpected or buggy dtype conversions
name: IO JSON
description: read_json, to_json, json_normalize

Comments:
Hello @deponovo! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:





There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2021-12-10 12:01:29 UTC
cc @WillAyd 
I think ujson added this upstream. See 

https://github.com/ultrajson/ultrajson/commit/6430079c3d4e4d9dd072639a6037696c0cce92f0

@deponovo I think better to just copy what they've already done down rather than have a new implementation
> I think ujson added this upstream. See
> 
> [ultrajson/ultrajson@6430079](https://github.com/ultrajson/ultrajson/commit/6430079c3d4e4d9dd072639a6037696c0cce92f0)
> 
> @deponovo I think better to just copy what they've already done down rather than have a new implementation

No idea it was based on an external lib. That commit is even from 2014. I'll replace my implementation by the commit you mentioned.
@WillAyd Pushed mods according to the requests. Now that I notice that pandas' ujson is based on an external lib, one might even consider updating the whole local code with the latest stable version of ujson.
@WillAyd I just tested replacing the whole ujson base code with the [latest version](https://github.com/ultrajson/ultrajson/commit/6833495c6f4eae8ef20bc52aeaeb2c069f98ee3f). The tests have the same result as per this PR. Should we instead perform that upgrade? I would only push after a positive answer.
I *think* we have some extensions in our code base that would be lost with a blanket update. If you wanted to do that its probably worth a dedicated issue and providing an analysis of the diff to see what might be changing.

For the scope of this PR, I think you are getting build failures from the definitions of DECLARE_NAN and DECLARE_INF that aren't being used
@deponovo this PR looks good to me. Can you add a whatsnew note so users are aware of the enhancement?

@jreback over to you
> @deponovo this PR looks good to me. Can you add a whatsnew note so users are aware of the enhancement?

I am confused to how I should add an entry here. Should I had my text on v1.4.0? Not sure I fully understand the (reference)[https://pandas.pydata.org/pandas-docs/stable/development/contributing_codebase.html#documenting-your-code] help.
> > @deponovo this PR looks good to me. Can you add a whatsnew note so users are aware of the enhancement?
> 
> I am confused to how I should add an entry here. Should I had my text on v1.4.0? Not sure I fully understand the (reference)[https://pandas.pydata.org/pandas-docs/stable/development/contributing_codebase.html#documenting-your-code] help.

Yea 1.4 looks right. Should be good in the “Other Enhancements” section 

https://github.com/pandas-dev/pandas/blob/master/doc/source/whatsnew/v1.4.0.rst#other-enhancements
thanks @deponovo very nice!

would certainly take an update to the ujson vendored code.
@deponovo any interest in porting more more improvements from upstream?  in particular in ultrajsondec.c is looks like some overflow-handling improvements have been made.
@jbrockmendel @jreback I already started with it. But there are some pandas specific code injections, so I can just swap code blindfolded. For now time is lacking. But I am working on it.