如何将数据从 AWS lambda node.js 转换为 Java 中的 JSONObject

How to convert data from AWS lambda node.js to JSONObject in Java

我的 lambda 代码片段是

dynamodb.query( params
, function(err, data) {
    if (err) {
        context.done(err);
    }
    else {
        console.log(JSON.stringify(data)); // successful response
        var size = data.Items.length;
        console.log("size:"+ size);
        var rand = Math.floor(Math.random() * (size));
        console.log("rand" + rand);
        var ret = data.Items[rand].content;
        console.log(ret);
        context.succeed(JSON.stringify(ret));
    }

我的 ("console.log(JSON.stringify(data)); // successful response") 的 AWS Lambda 日志是

{"Items":[{"content":{"S":"content1"}},{"content":{"S":"content2"}}],"Count":2,"ScannedCount":2}

"JSON.stringify(ret)" 的结果是

{"S":"content1"}

在我的 Android 代码中,调用此 API 并仅显示结果。 但它只显示 "java.lang.String cannot be converted to JSONObject"

我想知道如何在 Android 中转换为 JSONObject。

我在Android

中使用了这段代码
new JSONObject(notice).getJSONObject("S");

问题是您正在调用 getJSONObject。您得到的对象是 String.

{"S":"content1"}
^JSON    ^String

你应该打电话给 get

JSONObject jsonNotice = new JSONObject("{\"S\":\"hello, world\"}");
String contentsOfS = jsonNotice.get("S");

方法 getJSONObject 适用于嵌套 JSON 个对象:

{"S": {"foo": "bar"}}
^JSON ^JSON