2016-07-29 2 views
1

아래 json 요청이 있습니다.Google JsonObject 필드를 dynamoDB에 저장하는 방법은 무엇입니까?

{ 
"color":"red", 
"type":"publish", 
"events":{ 
    "some":"Yes", 
    "collection":[ 
     { 
     "key1":"value1", 
     "key2":"value2" 
    }, 
    { 
     "key3":"value3", 
     "key4":"value4" 
    } 
    ], 
    "nestedObject":{ 
     "key5":"value5", 
     "key6":"value6" 
    } 
    } 

}

나는 문자열, 문자열로 유형, 된 JSONObject 등의 이벤트와 같은 색상으로 POJO 클래스를 만들 수 있습니다. 이벤트 값 필드는 json 형식의 값일 수 있습니다. 그래서 JsonObject로 만들었습니다. 내 질문은 어떻게 데이터베이스에 이벤트를 저장할 수 있습니다. 발전기의 경우 @DynamoDBDocument 주석을 사용하여 다른 객체를 현재 POJO로 마샬링 할 수 있습니다. 마샬에게 수업에 주석을 달아야하기 때문에 저는 사용할 수 없습니다. 이 경우 JsonObject는 주석을 달 수도 없습니다. JsonObject를 발전기에 저장하는 다른 방법이 있습니까?

+0

이 이벤트는 또한 POJO되지 객체 수 ? 그렇다면 이것은 마치 [XY 문제] (http://xyproblem.info/)와 같은 것 같습니다. – rmlan

+0

아니요 모든 필드가있을 수 있기 때문에 이벤트에 POJO를 작성할 수 없습니다. 한 클라이언트가 x, y, z를 보냅니다. 다른 클라이언트는 a, b, c를 보냅니다. json 형식 값에 액세스하려면 일반적이어야합니다. – vamsi

답변

0

당신은 문자열 표현을 저장하기 위해 WithJSON 방법을 사용해야합니다

String jsonDoc = json.toString(); 
Item item = new Item() 
    .withPrimaryKey("pid", "Test") 
    .withJSON("doc", jsonDoc); 

table.putItem(item); 

당신은 또한 다음과 같은 AWS 설명서를 참조 할 수 있습니다 : http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/JavaDocumentAPIItemCRUD.html#PutDocumentAPIJava

+0

다이나모에서 CRUS 연산을 수행하기 위해 Dynamob 매퍼 클래스를 사용하고 있습니다. – vamsi