将数据转换为如下所示的字符串并检查结果。您应该将该值看作“AAAcd”。
简短的回答: -
String binaryDataAsString = new String (item.getBinary("binary_col"));
System.out.println("Binary data as string ====================>" + binaryDataAsString);
仅供参考: -
public Boolean getAutoTableDataWithoutMapper(String autoId) {
DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);
Table table = dynamoDB.getTable("autotable");
ItemCollection<QueryOutcome> items = null;
QuerySpec querySpec = new QuerySpec();
querySpec.withKeyConditionExpression("autoID = :val1").withValueMap(new ValueMap().withString(":val1", autoId));
items = table.query(querySpec);
Iterator<Item> iterator = items.iterator();
while (iterator.hasNext()) {
Item itemData = iterator.next();
System.out.println("Json data ====================>" + itemData.toJSONPretty());
System.out.println("Binary data ====================>" + itemData.getBinary("binaryData"));
String binaryDataAsString = new String(itemData.getBinary("binaryData"));
System.out.println("Binary data as string ====================>" + binaryDataAsString);
}
return true;
}
输出: - 请看 “二进制数据串”。该字符串显示正确。
如果您查看Json数据,则会显示您的问题中提到的值(即“QUFBY2Q =”)。
Json data ====================>{
"binaryData" : "QUFBY2Q=",
"autoID" : "fge",
"alexandriaID" : "122"
}
Binary data ====================>[[email protected]
Binary data as string ====================>AAAcd
显示您的代码。 –
你在哪里看到值为“Qha = e”。您是否使用Java API从数据库获取数据并在控制台中打印?我试过了,它对我来说工作得很好。另外,如果您已正确定义数据类型,则应在DynamoDB中将数据类型看作“B”。 – notionquest
我的回答有用吗?如果有帮助,我可以请求您接受我的回答吗? – notionquest