在DynamoDBMapper非转换方法中收到空Json

时间:2018-01-26 18:45:37

标签: java json amazon-web-services amazon-dynamodb

我在aws dynamoDB中有json数据,其中有一个嵌套json的字段。我想在Java HashMap中获得嵌套的json。为此,我在实现DynamoDBTypeConverter的类中编写了一个自定义转换器。

这是我的JSON数据 -

{
    "id": "1234",
    "payment": {
        "payment_id": "2345",
        "user_defined": {
            "some_id": "3456"
            }
        }
}

我想将user_defined映射到Java HasMap。

这是我的转换器类 -

public class HashMapConverter implements DynamoDBTypeConverter<String, customHashMap<String, Object>> {

    @Override
    public String convert(customHashMap<String, Object> hashMap) {
        System.out.println("userDefined is " + hashMap);
        System.out.println("Converting userDefined to string");
        return "Akshansh";
        //return new Gson().toJson(hashMap);
    }

    @Override
    public customHashMap<String, Object> unconvert(String jsonString) {
        System.out.println("jsonString received for unconverting is " + jsonString);
        System.out.println("Unconverting attribute");

        return new Gson().fromJson(jsonString, new TypeToken<customHashMap<String, Object>>(){}.getType());
    }
}

我的问题是,在上述转换器的unconvert方法中,即使我的数据明确包含user_defined字段中的信息,我也会收到空字符串。

任何有关此问题的帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我做了类似的事情,将字段类型作为'data.frame': 8 obs. of 5 variables: $ id: num 6 7 12 14 1 3 4 4 $ a : num 0 1 13 1 3 4 5 6 $ b : chr "1" "4" "12" "3" ... $ c : chr "0" "0" "13" "3" ... $ d : num NA NA NA NA NA NA NA NA

Object