是否可以将 Arraylist 作为值发送到 android 中 BasicValuePair 中的单个键
Is it possible to send Arraylist as value to a single key in BasicValuePair in android
嗨,我有多维数组格式 data.I 需要将这些数据与基本名称值对传递给 POST method.Is 有可能将整个数组列表作为值传递给 android.
ex:
the arrayList is
ArrayList<String> data=new ArrayList<String>();
data.add("Datas");
data.add("Datas2");
data.add("Datas3");
是否可以使用 BasicNameValuePair 在 ArrayList 中传递类似 this.Passing 值的数组列表。
List<BasicNameValuePair> pairedData=new ArrayList<BasicNameValuepair();
pairedDatas.add(new BasicNameValuePair("id","8"));
pairedDatas.add(new BasicNameValuePair("name","Customer Details"));
pairedDatas.add(new BasicNameValuePair("datas",data);
您无法添加 BasicNameValuePair
List<BasicNameValuePair> pairedData=new ArrayList<BasicNameValuepair();
pairedDatas.add(new BasicNameValuePair("id","8"));
pairedDatas.add(new BasicNameValuePair("name","Customer Details"));
ArrayList<String> data=new ArrayList<String>();
data.add("Datas");
data.add("Datas2");
data.add("Datas3");
// you need to convert tha array to formatted String
JSONArray jsArray = new JSONArray(data);
pairedDatas.add(new BasicNameValuePair("datas",data.toString());
你必须使用 jsonArray 来发送 arraylist,使用这个代码
JSONObject outerJsonObject ;
JSONArray _mainArray ;
outerJsonObject = new JSONObject();
_mainArray = new JSONArray();
for (int i = 0; i < count; i++) {
JSONObject _jSubObj = new JSONObject();
try {
_jSubObj.put("user_id",_userId);
_jSubObj.put("first_name",name.get(i));
}
_mainArray.put(_jSubObj);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
outerJsonObject.put("address_details",_mainArray);
// System.out.println("OuterJSON request"+outerJsonObject);
// System.out.println("JSON ARRAY : " + _mainArray);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在此代号中,i 位置的数组列表。
和参数使用类似
// Creating HTTP client
client = new DefaultHttpClient();
// Creating HTTP Post
HttpPost httpPost = new HttpPost(WebServiceConstants
.getMethodUrl(WebServiceConstants.METHOD_ADD_ADDRESS));
// Building post parameters, key and value pair
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("address_details", outerJsonObject.toString()));
System.out.println("Whole name value pair Address=" + nameValuePair.toString());
// Url Encoding the POST parameters
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
} catch (UnsupportedEncodingException e) {
// writing error to Log
e.printStackTrace();
}
try {
responseMain = client.execute(httpPost);
// Log.e("RESPONSe of My order", String.valueOf(responseMain));
HttpEntity entitity = responseMain.getEntity();
_responseMain = EntityUtils.toString(entitity); // content will be consume only once
System.out.println("Response of Address "+_responseMain);
} catch (Exception e)
{
e.printStackTrace();
}
我希望它有效
无法在 basicnamevalue pair.the 中传递数组列表值 pair.the 我们唯一能做的就是 this.Convert 将产品数组作为 jsonArray 然后将其转换为字符串并将其作为字符串传递给 basicnamevaluepair.At 服务器端我们需要使用 jsondecode 解析字符串,其键具有 jsonarray 作为字符串。
从 hare 下载 GSON 库
http://www.java2s.com/Code/Jar/g/Downloadgson222jar.htm 和
在您的项目 lib 文件夹中添加库。
试试这个代码
List<storeData> list=new ArrayList<storeData>();
for(int i=1;i<10;i++){
storeData("0"+i);}
private void storeData(String s)
{
storeData objDetails = new storeData(s);
list.add(objDetails);
}
class storeData {
private String strNumber;
public storeData(String l) {
strNumber = l;
}
}
Gson gson = new Gson();
String jsonString = gson.toJson(list); // convert data to json
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("jsonval", jsonString)); // pass data to server
注意:在服务器端解析 json 数据并将数据插入 table 。您可以根据您的要求修改此代码。
您可以将数组列表添加到名称值对,如 code.Just 通过 .toString() 方法将数组列表转换为字符串中所述。
首先初始化字符串生成器。
StringBuilder TaskID= new StringBuilder("");
StringBuilder FFCheckListID= new StringBuilder("");
StringBuilder FFCheckListLineItemSNo= new StringBuilder("");
TaskID.append("taskid");
TaskID.append(",");
FFCheckListID.append("id");
FFCheckListLineItemSNo.append("SNO");
并将 STRINGBUILDER 添加到数组列表
我遇到过这样的挑战,我用这种方式解决了我的问题。
LinkedList<String> llistobj = new LinkedList<String>();
ArrayList<String> arraylist= new ArrayList<String>();
arraylist.add("material_id");
arraylist.add("1");
arraylist.add("amount");
arraylist.add("10");
arraylist.add("material_id");
arraylist.add("2");
arraylist.add("amount");
arraylist.add("20");
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(newBasicNameValuePair("materials_receive",
Arrays.toString(llistobj.toArray())));
嗨,我有多维数组格式 data.I 需要将这些数据与基本名称值对传递给 POST method.Is 有可能将整个数组列表作为值传递给 android.
ex:
the arrayList is
ArrayList<String> data=new ArrayList<String>();
data.add("Datas");
data.add("Datas2");
data.add("Datas3");
是否可以使用 BasicNameValuePair 在 ArrayList 中传递类似 this.Passing 值的数组列表。
List<BasicNameValuePair> pairedData=new ArrayList<BasicNameValuepair();
pairedDatas.add(new BasicNameValuePair("id","8"));
pairedDatas.add(new BasicNameValuePair("name","Customer Details"));
pairedDatas.add(new BasicNameValuePair("datas",data);
您无法添加 BasicNameValuePair
List<BasicNameValuePair> pairedData=new ArrayList<BasicNameValuepair();
pairedDatas.add(new BasicNameValuePair("id","8"));
pairedDatas.add(new BasicNameValuePair("name","Customer Details"));
ArrayList<String> data=new ArrayList<String>();
data.add("Datas");
data.add("Datas2");
data.add("Datas3");
// you need to convert tha array to formatted String
JSONArray jsArray = new JSONArray(data);
pairedDatas.add(new BasicNameValuePair("datas",data.toString());
你必须使用 jsonArray 来发送 arraylist,使用这个代码
JSONObject outerJsonObject ;
JSONArray _mainArray ;
outerJsonObject = new JSONObject();
_mainArray = new JSONArray();
for (int i = 0; i < count; i++) {
JSONObject _jSubObj = new JSONObject();
try {
_jSubObj.put("user_id",_userId);
_jSubObj.put("first_name",name.get(i));
}
_mainArray.put(_jSubObj);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
outerJsonObject.put("address_details",_mainArray);
// System.out.println("OuterJSON request"+outerJsonObject);
// System.out.println("JSON ARRAY : " + _mainArray);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在此代号中,i 位置的数组列表。
和参数使用类似
// Creating HTTP client
client = new DefaultHttpClient();
// Creating HTTP Post
HttpPost httpPost = new HttpPost(WebServiceConstants
.getMethodUrl(WebServiceConstants.METHOD_ADD_ADDRESS));
// Building post parameters, key and value pair
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("address_details", outerJsonObject.toString()));
System.out.println("Whole name value pair Address=" + nameValuePair.toString());
// Url Encoding the POST parameters
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
} catch (UnsupportedEncodingException e) {
// writing error to Log
e.printStackTrace();
}
try {
responseMain = client.execute(httpPost);
// Log.e("RESPONSe of My order", String.valueOf(responseMain));
HttpEntity entitity = responseMain.getEntity();
_responseMain = EntityUtils.toString(entitity); // content will be consume only once
System.out.println("Response of Address "+_responseMain);
} catch (Exception e)
{
e.printStackTrace();
}
我希望它有效
无法在 basicnamevalue pair.the 中传递数组列表值 pair.the 我们唯一能做的就是 this.Convert 将产品数组作为 jsonArray 然后将其转换为字符串并将其作为字符串传递给 basicnamevaluepair.At 服务器端我们需要使用 jsondecode 解析字符串,其键具有 jsonarray 作为字符串。
从 hare 下载 GSON 库 http://www.java2s.com/Code/Jar/g/Downloadgson222jar.htm 和 在您的项目 lib 文件夹中添加库。
试试这个代码
List<storeData> list=new ArrayList<storeData>();
for(int i=1;i<10;i++){
storeData("0"+i);}
private void storeData(String s)
{
storeData objDetails = new storeData(s);
list.add(objDetails);
}
class storeData {
private String strNumber;
public storeData(String l) {
strNumber = l;
}
}
Gson gson = new Gson();
String jsonString = gson.toJson(list); // convert data to json
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("jsonval", jsonString)); // pass data to server
注意:在服务器端解析 json 数据并将数据插入 table 。您可以根据您的要求修改此代码。
您可以将数组列表添加到名称值对,如 code.Just 通过 .toString() 方法将数组列表转换为字符串中所述。 首先初始化字符串生成器。
StringBuilder TaskID= new StringBuilder("");
StringBuilder FFCheckListID= new StringBuilder("");
StringBuilder FFCheckListLineItemSNo= new StringBuilder("");
TaskID.append("taskid");
TaskID.append(",");
FFCheckListID.append("id");
FFCheckListLineItemSNo.append("SNO");
并将 STRINGBUILDER 添加到数组列表
我遇到过这样的挑战,我用这种方式解决了我的问题。
LinkedList<String> llistobj = new LinkedList<String>();
ArrayList<String> arraylist= new ArrayList<String>();
arraylist.add("material_id");
arraylist.add("1");
arraylist.add("amount");
arraylist.add("10");
arraylist.add("material_id");
arraylist.add("2");
arraylist.add("amount");
arraylist.add("20");
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(newBasicNameValuePair("materials_receive",
Arrays.toString(llistobj.toArray())));