+ "} ,"
+ "\"children\" :"
+ "[ \"SJB\" , \"ASB\" , \"CGB\" , \"BGB\" , \"GTB\" ]"
+ "}"
;
Table table = dynamo.getTable(TABLE_NAME);
Item item = Item.fromJSON(json)
// We don't even need to set the primary key if it's already included in the JSON document
.withPrimaryKey(HASH_KEY_NAME, "howToPut_TopLevelJSON", RANGE_KEY_NAME, 1);
table.putItem(item);
// Retrieve the entire document and the entire document only
Item documentItem = table.getItem(new GetItemSpec()
.withPrimaryKey(HASH_KEY_NAME, "howToPut_TopLevelJSON", RANGE_KEY_NAME, 1));
System.out.println(documentItem.toJSON());
// Output: {"first_name":"Jeff","myRangeKey":1,"person_id":123,"current_city":"Tokyo","next_haircut":{"month":10,"year":2014,"day":30},"last_name":"Barr","children":["SJB","ASB","CGB","BGB","GTB"],"myHashKey":"howToPut_TopLevelJSON"}
System.out.println(documentItem.toJSONPretty());
// Output:
// {
// "first_name" : "Jeff",
// "myRangeKey" : 1,
// "person_id" : 123,
// "current_city" : "Tokyo",
// "next_haircut" : {
// "month" : 10,
// "year" : 2014,
// "day" : 30
// },
// "last_name" : "Barr",
// "children" : [ "SJB", "ASB", "CGB", "BGB", "GTB" ],
// "myHashKey" : "howToPut_TopLevelJSON"
// }
// Retrieve part of a document. Perhaps I need the next_haircut and nothing else
Item partialDocItem = table.getItem(new GetItemSpec()
.withPrimaryKey(HASH_KEY_NAME, "howToPut_TopLevelJSON", RANGE_KEY_NAME, 1)
.withProjectionExpression("next_haircut"))
;
System.out.println(partialDocItem);
// Output: { Item: {next_haircut={month=10, year=2014, day=30}} }
// I can update part of a document. Here's how I would change my current_city back to Seattle:
table.updateItem(new UpdateItemSpec()
.withPrimaryKey(HASH_KEY_NAME, "howToPut_TopLevelJSON", RANGE_KEY_NAME, 1)
.withUpdateExpression("SET current_city = :city")
.withValueMap(new ValueMap().withString(":city", "Seattle"))
);
// Retrieve the entire item
Item itemUpdated = table.getItem(HASH_KEY_NAME, "howToPut_TopLevelJSON", RANGE_KEY_NAME, 1);
System.out.println(itemUpdated);
// Output: { Item: {first_name=Jeff, myRangeKey=1, person_id=123, current_city=Seattle, next_haircut={month=10, year=2014, day=30}, last_name=Barr, children=[SJB, ASB, CGB, BGB, GTB], myHashKey=howToPut_TopLevelJSON} }
System.out.println(itemUpdated.toJSONPretty());
// Output:
// {