Допустим, у меня есть такая ситуация, когда я получил 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?
Большое тебе спасибо