Comments (7)
@iderdik I'd suggest using pointers for fields that permit nil values.
type Car struct {
...
PurchasedAt *time.Time `jsonapi:"attr,purchased_at"`
...
}
from jsonapi.
Thanks, that should work.
from jsonapi.
After changing the struct members to pointers, I now get:
data is not a jsonapi representation of '*models.xxxx'"
I haven't changed anything else about the struct. Are pointers handle differently?
from jsonapi.
@iderdik can you post an example of the struct you are trying to serialize/deserialize?
from jsonapi.
@aren55555 Further research shows that this error happens when there are *string
members in the struct. This is the line that panics: https://github.com/shwoodard/jsonapi/blob/master/request.go#L312
It looks like there might be a need for a check if reflect.Kind()
is a pointer and handle appropriately.
This code in that spot made it work for me:
if fieldValue.Kind() == reflect.Ptr {
strval := val.(string)
fieldValue.Set(reflect.ValueOf(&strval))
} else {
fieldValue.Set(reflect.ValueOf(val))
}
Of course it assumes that the value is *string
so you still might need a default case handler.
from jsonapi.
And this all seems to be dealt with in this PR :) https://github.com/shwoodard/jsonapi/pull/28 Any chance that will get merged soon?
from jsonapi.
@iderdik master now has the commits that support fields of *string
from jsonapi.
Related Issues (20)
- Type validation on post is skipped
- Support for partial inclusion of relationships
- Asymmetrical behavior with json.RawMessage-type fields
- Community adoption of project HOT 4
- Unmarshall array of object in attribute HOT 1
- map inside struct unmarshalling HOT 2
- Export clearIncluded HOT 1
- got the wrong id when unmarshel a stract with an Int64 id HOT 1
- Is this project active? HOT 4
- Polymorphic relationships HOT 1
- Skipping an element in an array due to unmatched type
- Does example in README have a typo? HOT 1
- int64 id value changed while decoding HOT 12
- Marshal nested object does not work
- data is not a jsonapi representation of *type HOT 2
- Support for Unmarshalling Slices of floats/ints/bools
- Empty relation atrributes HOT 1
- adding meta at time of encoding
- jsonapi.MarshalPayload sets response status to 200, but I want 201 (created) HOT 1
- The wiki shows some weird 'hack' text
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 jsonapi.