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
ここで、そのようなマップを 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 文字列を作成するための提案はありますか?
どうもありがとうございました