Comments (7)
I would have expected a JSON string... It's semantics really and not that big a deal. :) I use the Immutable.js library and that has .toJS(), which I guess I'm used to so when I saw .toJSON() I was expecting a different result.
from dynogels.
Following up on this I found this in the MDN docs:
This means that there is a legitimate use for toJSON()
that I didn't know about before.
from dynogels.
I'm not sure I understand. JSON stands for JavaScript Object Notation. What would you expect a function called .toJSON()
to return?
from dynogels.
I'm with @patoncrispy on this. This isn't right:
const myJson = {hello: 'peeps'} // I'm JS not JSON
Where as this is:
const myJs = {hello: 'peeps'} // JS
const myJson = JSON.stringify(myJs) // JSON, a string that can be parsed
const backToJs = JSON.parse(myJson) // We have JS
from dynogels.
How would you recommend transitioning to this? Also, toJS
doesn't tell me what the function does.
What about toPlainObject()
?
from dynogels.
Two possible suggestions:
- Change the function name from
.toJSON()
to.toJS()
. - Introduce another function called
.toJS()
, which has the current functionality of.toJSON()
and the make the original.toJSON()
function return a JSON string.
To keep up with semver, you'd need to make a major release, as both of these suggestions are breaking changes.
Other than ImmutableJS (Facebook), the .toJS()
syntax is also used by Knockout and I feel it makes a lot more sense when trying to retrieve an object than .toJSON()
does. For instance, when I first found that function I used it like this:
const user = JSON.parse(User.toJSON());
This is the only reason I brought this up.
Mobx made this change to their API as well, so it could be worth looking at how they did it.
from dynogels.
That's actually quite interesting. I didn't know that!
from dynogels.
Related Issues (20)
- Does not enforce required() on nested property HOT 6
- What is the best way to convert a list of objects HOT 1
- Provide access to the AWS request object
- Model.validate not in latest release HOT 1
- Add transactions support HOT 1
- A method which returns the raw DynamoDB params for creating an item
- When I do an .updateAsync() with ReturnValues I recieve a type error
- Item.set doesn't work as advertised HOT 3
- Security question?
- while updating the model getting validationException HOT 1
- Project is dead? HOT 27
- using reserved word in schema causes silent error
- Enable On-Demand Billing Mode
- Cannot use "startKey" when using an index HOT 1
- 'updatedAt' field doesn't change once set.
- ValidationException on .destroy() method HOT 3
- Update joi dependency to use @hapi/joi HOT 6
- Keep getting Error: Invalid schema content when I use define HOT 3
- Stale library? HOT 1
- Is it possible to run dynogels with version 3 of AWS
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dynogels.