DynamoDB - 如何从数据集中提取NSString

时间:2013-07-11 11:37:29

标签: ios get amazon-dynamodb

使用DynamoDBItemRequest提取'firstName'对象,我得到的是:

{S:Will,N:(null),B:(null),SS :( ),NS :( ),BS :( ),}

我尝试过提取第一个对象,但它一直给我一个错误。经过一番挖掘后,我意识到DynamoDB没有返回NSString或NSArray对象。有人有运气提取数据集吗? 这是我的代码 -

-(void)tap
{  

DynamoDBGetItemRequest *getItemRequest = [[DynamoDBGetItemRequest new] autorelease];

DynamoDBAttributeValue *attributeValue = [[[DynamoDBAttributeValue alloc] initWithN:[NSString stringWithFormat:@"%d", 1]] autorelease];

getItemRequest.tableName = TEST_TABLE_NAME;
getItemRequest.key = [NSMutableDictionary dictionaryWithObject:attributeValue forKey:TEST_TABLE_HASH_KEY];

DynamoDBGetItemResponse *getItemResponse = [[AmazonClientManager ddb] getItem:getItemRequest];

NSMutableDictionary *userPreferences = getItemResponse.item;


NSArray *abc = [userPreferences objectForKey:@"lastName"];


NSLog(@"%@", abc);



}

这是我尝试不断给我错误的代码 - >

//    NSString *abb = abc[1];
//    NSLog(@"%@", abb);

1 个答案:

答案 0 :(得分:0)

在DynamoDB中,属性只能是一种类型(String,Number,Binary,StringSet,NumberSet,BinarySet)。您要打印的对象是“String”类型,其内容为“Will”。如果它像这样打印出来,Dynamo可能会更清晰:

{S:Will}

但是它只是将AttributeValue转换为String,并显示其中的所有其他(空)值:

{S: Will,N: (null),B: (null),SS: ( ),NS: ( ),BS: ( ),}

其他一切都只是噪音;所有重要的是它是一个内容为“Will”的字符串。