从DynamodbStreamRecord映射到JSON字符串



假设我在AWS Lambda中有一个DynamodbStreamRecord。从这个流记录(名为record的变量)中,我有一系列Java方法,它们以这种方式提取映射:

Map<String, AttributeValue> w1Data = record.getDynamodb().
    getNewImage().  // obtain the image
    get("DT").      // get from key "DT"
    getM().         // obtain the related map
    get("w1_data"). // get from key "w1_data"
    getM();         // obtain the related map

现在,我需要在JSON字符串中转换这样的w1Data映射,并尝试使用org.json.JSONObject构造函数,该构造函数将映射作为输入参数,然后是toString():

String jsonRepr = new JSONObject(w1Data).toString();

但我得到了这个奇怪的字符串:

'{"SessionExtraInfo":"{M: {Info={M: {CampaignID={N: 3,}, OriginID={N: 1,}, EntitySourceClassID={N: 8,}},}},}"}'

应该是这样的:

'{"SessionExtraInfo": {"Info": {"OriginID": "1", "CampaignID": "3", "EntitySourceClassID": "8"}}}'

你有什么建议可以在不显示DynamoDB指定的数据类型的情况下从这个映射创建一个有效的JSON字符串吗?

非常感谢

DynamoDB Stream有自己的JSNON格式,其中它有一个额外的键,每个值都描述它的TYPE,即S表示字符串,N表示数字,BOOL表示布尔值。

你应该查看这个链接http://blogs.aws.amazon.com/javascript/post/Tx1OVH5LUZAFC6T/Announcing-the-Amazon-DynamoDB-Document-Client-in-the-AWS-SDK-for-JavaScript

这解决了另一个类似于您的SO问题。

相关内容

  • 没有找到相关文章

最新更新