从 DynamoDB 返回结果的所有方法和迭代器似乎都包含以下格式(采用 json 样式):
{key : [TYPE,value]}
其中“类型”是 N,S...
我希望它们采用以下格式:
{key : value}
其中“value”是一个字符串,如果是 S,一个数字,如果是 N(或者一个这样的数组,如果是集合形式)。
API 包含一个帮助方法,用于按类型从数组中格式化属性:http: //docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.DynamoDb.DynamoDbClient.html#_formatAttributes
是否有一个预先存在的辅助方法或标志可以为我忽略的结果做相反的事情?
我知道这有点微不足道 - 每次我要使用结果时进行转换似乎都是一些工作。(这是一个只提供“N”和“S”案例的简单版本)
$iterator = $client->getIterator('Scan',$params);
foreach($iterator as $item){
$newitem = [];
foreach($item as $k => $v){
foreach($v as $type => $actualv){
switch($type){
case 'S' :
$newitem[$k] = $actualv;
break;
case 'N' :
$newitem[$k] = (int)$actualv;
break;
}
}
}
echo json_encode($newitem).PHP_EOL;
}
有没有一种我忽略的方法可以使这更容易,而不必遍历每个键?