user1993412
user1993412

Reputation: 862

Unable to convert JSON object to Java Object correctly

I am facing an issue while converting an JSON to a Java Object.

My Json is as below

{
   "_id":{
      "$oid":"5981428cf1aa82a313540b76"
   },
   "productId":1,
   "name":"The Big Lebowski",
   "currency":{
       "currency":"USD",
       "value":40.5
   }
}

I am retrieving json as DBObject for Product from the MongoDB database.

DBObject dbObject = productsCollection.findOne(searchQuery);
if(dbObject != null)
{
    Product product = (Product) AppUtils.fromDBObject(dbObject, Product.class);
    return Optional.of(product);
}

Product is return as

Product[productId = 1, productName= null, currencyPrice = null]

My fromDBObject method in AppUtils.java is as below :

public static Object fromDBObject(DBObject dbObj, Class<?> clazz) 
{
    String json = dbObj.toString();
    return new Gson().fromJson(json, clazz);
}

My POJO is as below :

public class Product 
{
   private long productId;
   private String productName;
   private CurrencyPrice currencyPrice;
   // getter and setter 
}

public class CurrencyPrice
{
   private double value;
   private String currency;
   // getter and setter
}

I am unable to understand where it is going wroing for the DBObject object with json to translate to Product object.

Thanks !

Upvotes: 0

Views: 296

Answers (1)

Scary Wombat
Scary Wombat

Reputation: 44854

try changing your POJO property names to match

public class Product 
{
   private long productId;
   private String name;
   private CurrencyPrice currency;
   // getter and setter 
}

Upvotes: 1

Related Questions