Giter Site home page Giter Site logo

Comments (5)

jasminb avatar jasminb commented on August 16, 2024

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.

amanique avatar amanique commented on August 16, 2024

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.

jasminb avatar jasminb commented on August 16, 2024

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.

amanique avatar amanique commented on August 16, 2024

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.

jasminb avatar jasminb commented on August 16, 2024

Hey,

Will update README with reference to jackson documentation.

Regards

from jsonapi-converter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.