假设我有这种情况,其中我有DynamodbStreamRecord
一个 AWS Lambda 内部。从这个流记录(名为 的变量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
现在,我需要将此类w1Data
映射转换为 JSON 字符串,并尝试使用将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"}}}'
您是否有任何建议从该地图创建有效的 JSON 字符串而不显示 DynamoDB 指定的数据类型?
非常感谢