2

重複の可能性:
AndroidでのJSONの送信と解析

JSON次の形式の結果があり、JSON Lintこれは。として表示されますValid Response

私の質問は、「reportId0」値「164」、「reportId1」値などのコンテンツにアクセスするにはどうすれば157よいreportId2 value 165ですか。すべて動的な値です。

の値にアクセスするための私のサンプルコード。値をproperties取得してすべての値をreportid追加する方法はArraylist

"properties": {    
    "link": "",
    "approvalsReportCount": 3,
    "reportName0": "srcapprovals",
    "reportId0": 164,
    "reportName1": "Approvals",
    "reportId1": 157,
    "requests_report_id": "163",
    "requests_report_name": "EG approvals",
    "reportName2": "fulfillment",
    "reportId2": 165
}
4

4 に答える 4

3

これは、ReportId値を取得するために私が見つけた最良の方法です。

以下は私のコードです

JSONObject jObj = new JSONObject(result);
            JSONObject jsonResultArray = jObj.getJSONObject("results");
            JSONObject pro_object = jsonResultArray.getJSONObject("properties");
            Iterator keys = pro_object.keys();
           while(keys.hasNext()) {
                String currentDynamicKey = (String)keys.next();
                String value = pro_object.getString(currentDynamicKey);
                String upToEightCharacters = currentDynamicKey.substring(0, Math.min(currentDynamicKey.length(), 8));

                if(upToEightCharacters.startsWith("reportId"))
                {

                    Log.v("key"," new report ID key  " + currentDynamicKey);
                    Log.v("key"," new report ID key  " + pro_object.getString(currentDynamicKey) );

                }
              }
于 2012-10-26T08:21:22.713 に答える
2

あなたはこれを使うことができます

public ArrayList<String> getReportIds() {
    boolean isContinue = true;
    JSONObject json;
    String tag = "reportId";
    int i = 0;
    ArrayList<String> repIdList = new ArrayList<String>();
    JSONObject prop = null;
    try {
        json = new JSONObject("<your json string>");
        prop = json.getJSONObject("properties");
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    while (isContinue) {
        String repId = "";
        try {
            repId = prop.getString(tag + i);
            repIdList.add(repId);
            i++;
        } catch (JSONException e) {
            isContinue = false;
            e.printStackTrace();
        }
    }
    return repIdList;
}
于 2012-10-26T06:22:45.370 に答える
1

あなたはこれを試すことができます!

try {
               JSONObject jObj = new JSONObject(result);
               JSONObject jsonResultArray = jObj.getJSONObject("results");
               Log.v("log_tag","json result Array :   "+ jsonResultArray);

               JSONObject pro_object = jsonResultArray.getJSONObject("properties");

               Iterator keys = pro_object.keys();

                 while(keys.hasNext()) {
                      // loop to get the dynamic key
                      String currentDynamicKey = (String)keys.next();
                      String value = pro_object.getString(currentDynamicKey);
                      approvaldto_Key = new All_Approval_Key_dto();

                      String upToEightCharacters = currentDynamicKey.substring(0, Math.min(currentDynamicKey.length(), 8));

                      if(upToEightCharacters.startsWith("reportId"))
                      {

                          approvaldto_Key.requestId = pro_object.getString(currentDynamicKey);
                          fetchrecursUserData.add(approvaldto_Key);
                      }

                  }

              }
        catch (JSONException e) {
            e.printStackTrace(); 
            }

          return  fetchrecursUserData;

    }
于 2012-10-26T08:18:06.427 に答える
0

以下のコードを試すことができます

String serial= jsonObject.getJSONObject("response").getString("serialNumber");

また

JSONObject json;
try {
    json = new JSONObject(buffer.toString());
    String accessToken = json.getString("access_token");
    return accessToken;
} catch (JSONException e) {
    Log.e("Podcast", "There was an error", e);
}
于 2012-10-26T05:41:40.890 に答える