我想将 arraylist
从 android 读取到 php
中,以便存储在数据库
中,但我无法找到确切的代码为了它。有人可以指导我解决这个问题的方向吗?
这是我用于创建arraylist
的java代码
private void loadCart()
{
productList.clear();
Cursor cursor = dbHelper.getCarProducts();
cursor.moveToFirst();
do {
CartProduct cartProduct = new CartProduct();
cartProduct.setProductName("Name: "+cursor.getString(cursor.getColumnIndex("_Name")));
cartProduct.setProductCost("Cost: "+cursor.getString(cursor.getColumnIndex("_Cost")));
cartProduct.setProductPrice("Price: "+cursor.getString(cursor.getColumnIndex("_Price")));
cartProduct.setProductQuantity("Quantity: "+cursor.getString(cursor.getColumnIndex("_Quantity")));
productList.add(cartProduct);
}while(cursor.moveToNext());
}
我正在使用 Retrofit2 来将 arraylist 发送到服务器,但正如我在其他问题中看到的那样,我无法获取 file_get_contents 的 url ?
最佳答案
给你...
第 1 步:在 gradle.app 中添加改造依赖项
compile 'com.squareup.retrofit:retrofit:1.9.0'
第 2 步:创建一个 RestClient 类,如下所示。
public class RestClient {
private static final String BASE_URL = DataConstants.TEST_URL; //Place your web service URL here
private ApiInterface apiService;
public RestClient()
{
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Accept", "application/json");
}
};
RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setRequestInterceptor(requestInterceptor)
.setEndpoint(BASE_URL)
.build();
apiService = restAdapter.create(ApiInterface.class);
}
public ApiInterface getApiService()
{
return apiService;
}
}
第 3 步:为 POST URL 制作接口(interface)。
public interface ApiInterface {
@POST("/sendData")
void sendData(@Body JsonObject jsonObject,
Callback<DataModel> dataModelCallback);
}
第 4 步:创建一个 POJO 类,如下所示。
public class DataModel{
private String success;
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
}
第 5 步:从您的 Activity 中调用 Web 服务,如下所示。
private void callWebService(String user_id) {
try {//TODO SEND
final Utility utility = new Utility(this);
utility.showProgressDialog();
JsonObject myJsonData = new JsonObject();
myJsonData.addProperty("user_id", user_id);
Gson gsonData = new GsonBuilder().create();
JsonArray dataArray = new JsonArray();
dataArray = gsonData.toJsonTree(productList).getAsJsonArray(); //Here you want to add your array list i.e productList
myJsonData.add("assign_to", jaAssignee);
new RestClient().getApiService().sendData(myJsonData, new Callback<DataModel>() {
@Override
public void success(DataModel dataModel, Response response) {
utility.hideProgressDialog();
try {
String success = dataModel.getSuccess();
if (success.equalsIgnoreCase("Success")) {
//Do what you want to do
}
} catch (Exception e) {
}
}
@Override
public void failure(RetrofitError error) {
utility.hideProgressDialog();
}
});
} catch (Exception e) {
}
}
希望这对您有帮助!
关于java - php : reading json arraylist and saving data in mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46231958/