Comments (3)
Hey!
"new(...).to_json"
/ "new.serialize_to_json(...)"
- will return a JSON serialized String, so if you do render json: { .. }
you will get an output of object with value as string, this is something I don't think you expect. The way to solve this String issue, is with Panko::Response
(option 5).
"new.serialize(...)"
/ "new.serialize(...).to_json"
- serialize creates an array of hashes, together with to_json
will return a JSON string on it. For performance reasons it's not recommended to use it, since:
- Panko iterates the users and convert the AR objects to Array of Hashes
- And another iteration is required to convert Array of Hashes to JSON
while withserialize_to_json
/to_json
- You do it on one pass, See https://panko.dev/docs/design-choices#ojstringwriter for more explanation.
Let me know if you have more questions.
from panko_serializer.
Thanks! very clear.
from panko_serializer.
Hey @yosiat , thanks for this answer - I think it deserves a place in the documentation on its own :) What's the equivalent for single object serialization?
ObjectSerializer.new.serialize_to_json(object)
is preferable over ObjectSerializer.new.serialize(object).to_json
, right? In the "getting started" documentation I don't think it's clear which one is recommended.
I think existing documentation could greatly benefit from a page with common use cases, like:
- serialize a single object in a Rails controller;
- serialize an ActiveRecord collection in a Rails controller;
- serialize nested relations (e.g.
User
with manyComments
) and eager loading; - serialize an array of objects;
- serialize an array of objects using ActiveSupport::Cache as a cache backend;
- and so on.
I know most of these things are outside the scope of a serialization library, but they could give hints about possible ways of integrating Panko with the existing rails ecosystem for starters.
Thanks for the great work on this gem!
from panko_serializer.
Related Issues (20)
- How to use a raw JSON string inside a serializer? HOT 2
- Delegate + aliases not working as expected HOT 1
- Adding a custom root name for array serializer HOT 1
- Relax `oj` dependency HOT 3
- Is anyone actively maintaining this project? HOT 2
- Using ActiveRecord's pluck when possible
- Serialize attributes which is used `serialize` in active model definition
- Benchmarks task not working HOT 1
- How do I selectively display a key/value pair? HOT 2
- Alias declaration is ignored when method is added HOT 2
- Migration from AMS HOT 3
- Filter on array serializer? HOT 4
- Conditionally include associations in JSON response HOT 3
- Rendering recursive relations HOT 2
- Add context to relations has_one/has_many
- Ability to skip nil values HOT 2
- Loading dynamic field names during serialization HOT 1
- Status HOT 1
- Conditional inclusion of has_many association using `Panko::Serializer::SKIP`
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 panko_serializer.