https://github.com/donavon/json_
Converts camelCase JavaScript objects to JSON snake_case and vise versa.
https://github.com/donavon/json_
fetch javascript json json-snake-case rest
Last synced: 7 months ago
JSON representation
Converts camelCase JavaScript objects to JSON snake_case and vise versa.
- Host: GitHub
- URL: https://github.com/donavon/json_
- Owner: donavon
- License: mit
- Created: 2013-10-10T20:09:23.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2022-03-26T13:26:19.000Z (over 3 years ago)
- Last Synced: 2025-03-17T20:44:50.200Z (7 months ago)
- Topics: fetch, javascript, json, json-snake-case, rest
- Language: TypeScript
- Size: 432 KB
- Stars: 17
- Watchers: 5
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# json\_
[](https://travis-ci.org/donavon/json_) [](https://www.npmjs.com/package/json_)
Converts camelCase JavaScript objects to JSON snake_case and vise versa. This is a direct replacement for the built-in JSON object. In fact, this simply wraps the built-in JSON object. Very handy when your back_end APIs are not build using Node.js.
It also supports converting a `fetch` response stream into a camelCased object.> NOTE: New version 3.0 completely re-written in TypeScript, so it's fully typed.
## First, get the package
Install json\_ and include it in your build.
```bash
npm install json_ --save
```Then import it like this.
```js
import JSON_ from 'json_';
```## Example
```js
const example = {
firstName: 'John',
lastName: 'Doe',
isbn10: '1234567890',
};console.log(JSON_.stringify(example));
// {"first_name":"John","last_name":"Doe", "isbn_10": "1234567890"}
```And vise versa.
```js
import JSON_ from 'json_';
const str = '{"ultimate_answer": 42}';console.log(JSON_.parse(str));
// {ultimateAnswer: 42}
```## Using with `fetch`
You can use `json_` directly with the JavaScript `fetch` API to convert
the `Response` into an `Object` with snakeCase.Let's say you have a function that returns snake_case weather data, something like this.
```js
const fetchWeather = async zip => {
const response = fetch(`${weatherUrl}?zip=${zip}`);
const json = await response.json();
return json;
};const data = await fetchWeather('10285');
console.log(data);
// {current_temp: 85, reporting_station: 'New York, NY'}
```You can easily convert the resolved object to camelCase by replacing the call to `Response.json()`
to a call to `JSON_.parse(Response)`, like this.```diff
- const json = await response.json();
+ const json = await JSON_.parse(response);
```The resulting code looks like this
```js
import JSON_ from 'json_';const fetchWeather = async zip => {
const response = fetch(`${weatherUrl}?zip=${zip}`);
const json = await JSON_.parse(response);
return json;
};const data = await fetchWeather('10285');
console.log(data);
// {currentTemp: 85, reportingStation: 'New York, NY'}
```## Tests!
100% unit test coverage. To run the unit tests and get a coverage report:
```
npm test coverage
```## License
Copyright Donavon West. Released under MIT license