我的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");
答案 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