我使用Volley
並需要發送到服務器列表的對象User
和List<Integer>
。排球:在JSONObject中使用列表<T>發出請求
User
類:
public class User {
public int id;
public String name;
public MyClass(int id, String name){
this.id = id;
this.name= name;
}
}
我使用的代碼
HashMap<String, Object> params = new HashMap<>();
List<Integer> categories = new ArrayList<>(Arrays.asList(5, 8, 9));
List<User> users = new ArrayList<>(Arrays.asList(
new User(1, "User1"),
new User(2, "User2"),
new User(3, "User3")
));
params.put("categories", categories);
params.put("users", users);
JSONObject jsonBody = new JSONObject(params);
問題是JSONObject的無法解析User
{
"users": [
null,
null,
null
],
"categories": [
5,
8,
9
]
}
如何與JSONObject
解析呢?
參數「users
」應該是array
而不是string
。
我需要JSONObject
因爲Volley
使用
JsonObjectRequest(int method, String url, JSONObject jsonRequest,
Listener<JSONObject> listener, ErrorListener errorListener)
全碼:
package com.example.admin.testjson;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Map<String, Object> params = new HashMap<>();
List<Integer> categories = new ArrayList<>(Arrays.asList(5, 8, 9));
List<User> users = new ArrayList<>(Arrays.asList(
new User(1, "User1"),
new User(2, "User2"),
new User(3, "User3")
));
params.put("categories", categories);
params.put("users", users);
JSONObject jsonBody = new JSONObject(params);
}
}
package com.example.admin.testjson;
public class User {
int id;
String name;
public User(int id, String name){
this.id = id;
this.name = name;
}
}
這JSON框架,你用? – Henry
在項目中我使用Jackson,Volley使用org.json – Alexandr