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

时间:2016-10-17 15:26:44

标签: json node.js amazon-web-services amazon-dynamodb aws-lambda

我的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));
    }

我的AWS Lambda日志(“console.log(JSON.stringify(data)); //成功响应”)是

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

“JSON.stringify(ret)”的结果是

{"S":"content1"}

在我的Android代码中,调用此API并显示结果。 但它只显示“java.lang.String无法转换为JSONObject”

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

我在Android中使用了这段代码

new JSONObject(notice).getJSONObject("S");

1 个答案:

答案 0 :(得分:2)

问题是你在呼叫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