Comments (5)
Hello,
Deserialisation/serialisation will work for objects of any complexity. Please check your classes/responses to make sure there't any typos or similar.
If you can provide exact responses, classes used and example on how the converter is instantiated I can provide more help.
Kind regards,
Jasmin
from jsonapi-converter.
Hello thanks for the reply.
I'm sorry but i must call your attention again that this is not a relationship object, it's object inside attributes. Everything works fine on the example i gave you, name is parsed, capital is parsed, but location remains null.
private static JacksonConverterFactory jacksonConverterFactory = JacksonConverterFactory.create(objectMapper);
public static ObjectMapper objectMapper = new ObjectMapper().configure
(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false).configure
(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JSONAPIConverterFactory jsonapiConverterFactory = new JSONAPIConverterFactory(objectMapper, Country.class);
jsonapiConverterFactory.setAlternativeFactory(jacksonConverterFactory);
private static final Retrofit RETROFIT_SERVICE = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(jsonapiConverterFactory)
.build();
from jsonapi-converter.
Here is what i tried, and it works perfectly:
Input:
{
"data" : {
"id" : 1,
"type" : "countries",
"attributes" : {
"name" : "France",
"capital" : "Paris",
"location" : {
"latitude" : "123",
"longitude" : "456"
}
}
}
}
Class:
package com.github.jasminb.jsonapi.models;
import com.github.jasminb.jsonapi.annotations.Id;
import com.github.jasminb.jsonapi.annotations.Type;
@Type("countries")
public class Country {
@Id
public String id;
public String name;
public String capital;
public Location location;
public Country() {
}
public static class Location {
public String latitude;
public String longitude;
public Location() {
}
}
}
Usage:
ResourceConverter converter = new ResourceConverter(Country.class);
Country country = converter.readObject(input, Country.class);
Assert.assertEquals("123", country.location.latitude);
from jsonapi-converter.
OK You are right, it worked. The problem was that the object had a private scope.
I tested with public and it worked, and then i tried private and a public setLocation() and it worked as well.
Maybe you would like to point this in the documentation.
Thank you.
from jsonapi-converter.
Hey,
Will update README with reference to jackson documentation.
Regards
from jsonapi-converter.
Related Issues (20)
- Should ALLOW_UNKNOWN_TYPE_IN_RELATIONSHIP be less restrictive HOT 7
- @Id obfuscated by proguard even after excluding the annotation HOT 2
- POST Example with RestTemplate HOT 2
- How to configure ObjectMapper? HOT 2
- @Type serialization HOT 2
- Document collection always throw error while using readCollections HOT 1
- Object with relations itself HOT 1
- @Relationship is not being deserialized HOT 2
- Creating a resource on the server - required id field HOT 2
- Does the library support Javas webclient and the reactor implementation? HOT 2
- "jsonapi": { "version": "1.0" } Parser HOT 2
- Get value above "attributes" level HOT 2
- Relationship attributes dont serialized HOT 3
- The library does not support JSON Specification "8.3 Inclusion of Related Resources" HOT 13
- Class doesn't have a Type annotation error, even though the class does have one HOT 3
- Proguard issues with jsonapi-converter when Android project to targets java 17 HOT 2
- InvalidJsonApiResourceException: Resource must contain at least one of 'data', 'error' or 'meta' nodes
- Handling local identifier ("lid") when creating resource HOT 4
- Backward compatibility HOT 2
- Pagination is not supported with decode fein in Java Spring boot HOT 2
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-converter.