ENH: Preserve Series index on `json_normalize`
- [ ] closes #51452 
- [x] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

Passing a Series as input to `json_normalize` was already functional before but undocumented as a feature, and had the issue linked above where it would not preserve the index of the input series.
Thanks @nworb-cire  Hi @mroeschke @nworb-cire, I just saw this via email that the original issue had been closed.  (@nworb-cire thanks for the fix!).

The code looks valid and follows the principle-of-least-surprise that the index is retained when `json_normalize` input is  a series.

However, that is a breaking change on existing pandas code in the wild that might rely on json_normalise always returning a fresh 0:N index.

I think the **patch notes should alert to the change in behaviour more strongly than it currently does**.  

@mroeschke I assume that the breaking change is okay as part of pandas 3.0?  If pandas guidelines are not okay with breaking changes we could patch in an extra arg for the function such that the default behaviour is the former (weird) behaviour but users can toggle on the new functionality. > I assume that the breaking change is okay as part of pandas 3.0?

Correct. I am not sure if adding an extra argument to get the old behavior is entirely needed as a user can get the old behavior by calling `reset_index` before using `json_normalize`, but a doc example showing that would be welcome. > I am not sure if adding an extra argument to get the old behavior is entirely needed as a user can get the old behavior by calling reset_index before using json_normalize,

The only reason to add the extra arg would be to make the code backwards compatible.  If we are happy to make a breaking change then there is no need for it.