Android 将带有对象数组的JSON对象添加到列表视图
我有以下JSON:Android 将带有对象数组的JSON对象添加到列表视图,android,json,android-layout,listview,android-volley,Android,Json,Android Layout,Listview,Android Volley,我有以下JSON: { "user_wallets": [ { "user_id": "56", "wallet_id": "25", "wallet_name": "Dandora Youth Voucher", "balance": "1,150.00" }, { "user_id": "56",
{
"user_wallets": [
{
"user_id": "56",
"wallet_id": "25",
"wallet_name": "Dandora Youth Voucher",
"balance": "1,150.00"
},
{
"user_id": "56",
"wallet_id": "36",
"wallet_name": "Pfizer Chama",
"balance": "0.00"
},
{
"user_id": "56",
"wallet_id": "37",
"wallet_name": "Sunshine",
"balance": "1,000.00"
}
]
}
我想将钱包\u名称
和余额
添加到如下列表视图:
wallet_name balance
wallet_name balance
wallet_name balance
@Override
public void onErrorResponse(VolleyError error) {
if(error.networkResponse.data!=null) {
try {
body = new String(error.networkResponse.data,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
等等。但是,我使用volley库对我的api进行http调用,但响应显示为空的Toast消息
我哪里会错呢
我打的电话是:
public void getMyWallets(){
final JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,
url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try{
JSONArray user_wallets = response.getJSONArray("user_wallets");
for(int i = 0; i<user_wallets.length();i++){
JSONObject wallet = user_wallets.getJSONObject(i);
WalletModel walletModel = new WalletModel();
walletModel.setWallet_name(wallet.getString("wallet_name"));
walletModel.setBalance(((Number) wallet.get("balance")).doubleValue());
walletModelList.add(walletModel);
}
} catch (JSONException e) {
e.printStackTrace();
}
walletListAdapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
hidepDialog();
}
});
MyApplication.getInstance().addToRequestQueue(jsonObjReq);
}
public void getMyWallet(){
final JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(Request.Method.GET,
url,null,新响应。侦听器(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
JSONArray user_wallets=response.getJSONArray(“user_wallets”);
对于(int i=0;i在截击错误中有一个网络响应
引用,请查看它并查看是否获得任何有用的信息,以便了解错误的位置
大概是这样的:
wallet_name balance
wallet_name balance
wallet_name balance
@Override
public void onErrorResponse(VolleyError error) {
if(error.networkResponse.data!=null) {
try {
body = new String(error.networkResponse.data,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
所以我发现代码没有问题。问题是截击请求超时:
退房
并且,我通过这样做解决了我的空列表问题:
RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext());
MyApplication.getInstance().addToRequestQueue(jsonObjReq);
int socketTimeout = 15000;//30 seconds - change to what you want
RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
jsonObjReq.setRetryPolicy(policy);
mRequestQueue.add(jsonObjReq);
这为要获取的数据增加了更多请求超时:)请出示您的日志,我使用的是Android Studio 1.4,似乎找不到日志:|主机java.io.IOException中的软件中止了已建立的连接。异常:主机sun.nio.ch.SocketDispatcher.write0中的软件中止了已建立的连接(本机方法)在sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)在sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94)在sun.nio.ch.socketChannelImpel.write(IOUtil.java:65)在sun.nio.ch.SocketChannelImpl.write(socketChannelImpel.java:450)在com.android.ddmlib.JdwpPacket.writeAndConsume(jdwppack.java:213)在…[长文本]我用Toast试过了,它是空的。至于日志,我似乎没有把它们作为1.4