script
Custom jason encoder
In the docs its mentioned that we can implement the custom data types with jason instead of for: Any. But what if i wanted to write it for some custom attribute like for: [Ecto.Association.NotLoaded] .how can I make it work. This is the code
defimpl Jason.Encoder, for: [Ecto.Association.NotLoaded] do
def encode(%{__struct__: _} = struct, _options) do
struct
|> Map.from_struct()
|> sanitize()
|> Jason.encode!()
end
defp sanitize(map) do
map
|> Map.delete(:__meta__)
|> Map.delete(:__struct__)
|> Enum.map(fn
{k, %Ecto.Association.NotLoaded{}} -> {k, "Not Loaded"}
other -> other
end)
|> Enum.into(%{})
end
end
Its working fine for: Any. But throws an error if I change it Ecto.Association.NotLoaded.
This protocol is implemented for: Any, Atom, BitString, Date, DateTime, Decimal,
Ecto.Association.NotLoaded
It means it implemented for Ecto.Association.NotLoaded. But how can i include it in the modules to see if it works or not. Or Do I have tell my module to use this encoder?
Thanks
First Post!
idi527
![]()
Try replacing
defimpl Jason.Encoder, for: [Ecto.Association.NotLoaded] do
with
defimpl Jason.Encoder, for: Ecto.Association.NotLoaded do
and
Jason.encode!()
with
Jason.Encode.map()
Popular in Questions
Hello everyone,
I try to use an Javascript Event Handler in my root.html.leex file.
Therefore I created a function in the app.js file: ...
New
I want to try my hand at web scraping. What tools/libraries do I need to use. I’m hoping to turn this into something professional so don’...
New
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
Hi,
is there any work on GUI with Elixir, that is similar to Electron/Javascript? My idea is to bundle Phoenix and BEAM into a single se...
New
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set?
Thanks.
New
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
Other popular topics
Hi,
I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
New
Hello, I have map which I want to convert it to string like this:
the map:
%{last_name: "tavakkoli", name: "shahryar"}
the string I ne...
New
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
Hello everybody,
usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
I have VueJS GUIs with the project generated using Webpack.
I have Elixir modules that will need to be used by the VueJS GUIs.
I forese...
New
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
Hello!
Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
Hi everyone!
I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New








