0

ノードから以下のような応答がありますが、Java で配列として抽出するにはどうすればよいですか

[
   {
      "userName":"Steve",
      "date":"Tue Aug 13 18:44:23 GMT+05:30 2013",
      "message":"Good morning sir."
   }
]

注 : 最後にやりました。時間を無駄にして申し訳ありません。私の最後のコメントを参照してください :)

サーバーで書かれたノードに http リクエストを送信しています。サーバーでは、オブジェクトの配列 [{}、{}、...] を Java に送信しています。今度は Java に来て、次を使用して応答を読み取ります。 InputStream を呼び出し、結果の文字列を構築します。

上記で指定したような文字列を取得しています。必要なのは、文字列を配列に変換して、ループして配列内のオブジェクトにアクセスできるようにする方法です

HttpGet httpget = new HttpGet('some uri');
HttpEntity httpentity = httpclient.execute(httpget).getEntity();

private void renderResponseAndQueueResults(HttpEntity httpentity) {
                try {
                    InputStream is = httpentity.getContent();
                    String result = convertStreamToString(is);
                    is.close();
                    appendResultToMap(result);
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            private String convertStreamToString(InputStream is) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                StringBuilder sb = new StringBuilder();

                String line = null;

                try {
                    while( (line = reader.readLine()) != null){
                        sb.append(line + "\n");
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } finally{
                    try{
                        is.close();
                    }catch (IOException e){
                        e.printStackTrace();
                    }
                }
                return sb.toString();
            }

convertStreamToString の戻り値は String のようなものです

[
   {
      "userName":"Steve",
      "date":"Tue Aug 13 18:44:23 GMT+05:30 2013",
      "message":"Good morning sir."
   }
]

どうすればそれをループできますか

4

1 に答える 1

0

JSON ライブラリ API を参照する必要があります: http://www.json.org/javadoc/org/json/JSONArray.html

これはあなたが望むものかもしれません:

//process the JSON array parsed out from the source string
for (int i = 0; i < arr .length(); i++) 
{
    //get each JSON object of the array
    JSONObject iObj = arr.getJSONObject(i);

    //access the content of the JSON object, like print it
    System.out.println(iObj.getString("userName"));
}
于 2013-08-13T13:52:52.240 に答える