我想從服務器獲取Json響應,並將其作爲arraylist傳遞給下一個活動。這適用於排球,但我無法通過改造得到迴應。這是我的代碼。如何從服務器獲取json響應並使用Retrofit將它們存儲在Arraylist中?
public class MainActivity extends AppCompatActivity {
public static final String ROOT_URL = "http://#####.####/";
String username;
String password;
private Button makerequest;
private ProgressDialog pdialog;
private EditText edittextusername;
private EditText edittextpassword;
private String DataArray[] = new String[15];
private ArrayList<Result> dataarr = new ArrayList<>();
int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
makerequest = (Button) findViewById(R.id.btnObjRequest);
edittextpassword = (EditText) findViewById(R.id.editpassword);
edittextusername = (EditText) findViewById(R.id.editusername);
pdialog = new ProgressDialog(this);
pdialog.setMessage("wait kar be...");
pdialog.setCancelable(false);
makerequest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
makejsonobjectrequest();
}
});
}
private void makejsonobjectrequest(){
username = edittextusername.getText().toString().trim();
password = edittextpassword.getText().toString().trim();
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(ROOT_URL)
.build();
//creating object of our interface
DataApi data = adapter.create(DataApi.class);
//defining the method.
data.getposition(username, password, new Callback<ArrayList<Result>>() {
@Override
public void success(ArrayList<Result> list, Response response) {
dataarr= list;
Bundle b = new Bundle();
b.putSerializable("array", dataarr);
Intent intent = new Intent(getBaseContext(), Display.class);
intent.putExtras(b);
startActivity(intent);
}
@Override
public void failure(RetrofitError error) {
Toast.makeText(getBaseContext(), error.toString(),Toast.LENGTH_SHORT).show();
}
});
}
}
錯誤是:retrofit.RetrofitError:com.google.gson.JsonSyntaxException:java.lang.illegalStateException:預期的BEGIN_ARRAY,但是BEGIN_OBJECT在line1列2路徑$。 –
在這裏發佈回覆使用POSTMAN的JSON。這個錯誤來自bcoz json從簡單的對象開始,但你試圖把它放到ArrayList中。看起來像你一樣的問題http://stackoverflow.com/questions/40689691/how-do-i-store-the-json-response-from-my-server-to-an-arraylist-and-pass-到下一個/ 40690138#40690138 – sushildlh