2016-10-17 10 views
-1
にJSONObjectにデータを変換する方法

ラムダの私のコードスニペットがあるAWSラムダは、Node.jsのからのJava

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ラムダログ( "はconsole.log(JSON.stringify(データ));//成功応答」)

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

の結果である "JSON.stringify(RET)" 私のAndroidのコードで

{"S":"content1"} 

で、このAPIを呼び出すだけ解像度を表示ウルトラ。 しかし、 "java.lang.StringはJSONObjectに変換できません"というメッセージしか表示されませんでした。

AndroidでJSONObjectに変換する方法は不思議です。

は、私はこの問題は、あなたが getJSONObjectを呼び出しているされてアンドロイド

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

ダブルデバッグを使用して 'notice'変数を確認してください。 "can not convert"エラーは、通常、構文の問題がある場合にスローされます。 – donkon

+0

こんにちは@donkon 通知変数は "{" "S": "content1"} "です。それは間違っていません。それは私を狂ってしまう。私は何をもっと調べるのですか? – larsien

+0

投稿者 – donkon

答えて

2

にこのコードを使用していました。取得しているオブジェクトはStringです。

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

あなたは方法getJSONObjectget

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

を呼ぶべきであるが、ネストされたJSONオブジェクトのです:

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

文字列contentsOfS = jsonNotice.getString( "S"); これは私が解決したものです! ありがとうございました! – larsien

関連する問題