Skip to content
/ json_ Public
forked from donavon/json_

Converts camelCase JavaScript objects to JSON snake_case and vise versa.

License

Notifications You must be signed in to change notification settings

yacki/json_

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

json_

Build Status npm version

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.

First, get the package

Install json_ and include it in your build.

npm install json_ --save

Then import it like this.

import JSON_ from 'json_';

Example

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.

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.

const fetchWeather = zip => (
  fetch(`${weatherUrl}?zip=${zip}`)
    .then(res => res.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.

import JSON_ from 'json_';

const fetchWeather = zip => (
  fetch(`${weatherUrl}?zip=${zip}`)
    .then(JSON_.parse)
);

const data = await fetchWeather('10285');
console.log(data);
// {currentTemp: 85, reportingStation: 'New York, NY'}

Tests!

To run the unit tests...

npm test

License

Released under MIT license

About

Converts camelCase JavaScript objects to JSON snake_case and vise versa.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%