gpt4 book ai didi

java - Android 解析 Json 对 Java ArrayList 的响应

转载 作者:行者123 更新时间:2023-11-29 02:58:52 30 4
gpt4 key购买 nike

我正在尝试通过 Volley 向我的 WCF 服务发出 GET 请求,我想解析它对 Java ArrayList 的响应。 .这是我的方法

    public ArrayList<Company> getCompanies(){

String url = AUDITTRACKINGAPP_SERVICE_URI + "GetCompanies";
String tagJsonReq = "companiesRequest";

final ProgressDialog pDialog = new ProgressDialog(context);
pDialog.setMessage("Please Wait...");
pDialog.show();

final ArrayList<Company> companies = new ArrayList<Company>();

JsonObjectRequest companiesRequest = new JsonObjectRequest( Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {

Log.v(TAG, "COMPANIES RESPONSE:" + response.toString());

try {
JSONArray companiesJson = response.getJSONArray("GetCompaniesResult");

for (int i = 0; i < companiesJson.length(); i++) {

JSONObject jObject = (JSONObject)companiesJson.get(i);

Company company = new Company();
company.setCompanyId(Integer.parseInt(jObject.getString("CompanyId")));
Log.v(TAG, "COMPANIES setCompanyId:" + jObject.getString("CompanyId"));
company.setCompanyName(jObject.getString("CompanyName"));
Log.v(TAG, "COMPANIES setCompanyName:" + jObject.getString("CompanyName"));

companies.add(company);
}

} catch (JSONException e) {
Log.v(TAG, "COMPANIES RESPONSE ERROR ON PARSING JSON:" + e.getMessage());
}

pDialog.hide();
}
},
new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
Log.v(TAG, "COMPANIES onErrorResponse:" + error.getMessage());
pDialog.hide();
}
});

AppController.getInstance().addToRequestQueue(companiesRequest, tagJsonReq);

return companies;
}

JSON RESPONSE:

 {"GetCompaniesResult":[{"CompanyId":1,"CompanyName":"CompanyName1"},{"CompanyId":2,"CompanyName":"CompanyName2"}]}

我能够得到 JSON 响应,但是 ArrayList<Company>返回空值。我认为onResponse是一个回调方法,在另一个线程中运行,所以我无法填充列表,但由于我是 Android 新手,我不知道如何处理这个问题。任何帮助将不胜感激。

最佳答案

你需要为json数组的每个元素创建json对象

try {
JSONArray companiesJson = response.getJSONArray("GetCompaniesResult");

for (int i = 0; i < companiesJson.length(); i++) {


JSONObject obj = Website.getJSONObject(i);


Company company = new Company();
company.setCompanyId(Integer.parseInt(obj.getString("CompanyId")));
Log.v(TAG, "COMPANIES setCompanyId:" + obj.getString("CompanyId"));
company.setCompanyName(obj.getString("CompanyName"));
Log.v(TAG, "COMPANIES setCompanyName:" + obj.getString("CompanyName"));

companies.add(company);
}

} catch (JSONException e) {
Log.v(TAG, "COMPANIES RESPONSE ERROR ON PARSING JSON:" + e.getMessage());
}

关于java - Android 解析 Json 对 Java ArrayList 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36476293/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com