将arraylist bean从android传递给webservice php
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将arraylist bean从android传递给webservice php,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5461字,纯文字阅读大概需要8分钟。
内容图文
![将arraylist bean从android传递给webservice php](/upload/InfoBanner/zyjiaocheng/713/cf3f9c37bdd6444fb7d3ef53005a146b.jpg)
我是带有网络服务的android的新手
我试图将arraylist从android传递到webservice php服务器
这是我的bean代码:
public class ExpressionBean {
public static final String EXPRESSION_ID = "expressionID";
public static final String EXPRESSION_TEXT = "expressionText";
public static final String ANS_TEXT1 = "ansText1";
public static final String ANS_TEXT2 = "ansText2";
public static final String ASSESSEE_ANSWER = "assesseeAnswer";
private String expressionID;
private String expressionText;
private String ansText1;
private String ansText2;
private String assesseeAnswer;
public String getExpressionID() {
return expressionID;
}
public void setExpressionID(String expressionID) {
this.expressionID = expressionID;
}
public String getExpressionText() {
return expressionText;
}
public void setExpressionText(String expressionText) {
this.expressionText = expressionText;
}
public String getAnsText1() {
return ansText1;
}
public void setAnsText1(String ansText1) {
this.ansText1 = ansText1;
}
public String getAnsText2() {
return ansText2;
}
public void setAnsText2(String ansText2) {
this.ansText2 = ansText2;
}
public String getAssesseeAnswer() {
return assesseeAnswer;
}
public void setAssesseeAnswer(String assesseeAnswer) {
this.assesseeAnswer = assesseeAnswer;
}
}
这是异步任务的doInBackround:
protected Boolean doInBackground(Void... params) {
// TODO: attempt authentication against a network service.
boolean result = false;
// test = new TestBean();
// int resultTest = 0;
UserFunctions userFunction = new UserFunctions();
Log.d(TAG, "UID : " + mEmail);
// Log.d(TAG, "resultTest : " + resultTest);
JSONObject jsonTest = userFunction.storeTest(mEmail);
Log.d(TAG, "After JSON TEST ");
try {
if (jsonTest.getString(KEY_SUCCESS) != null) {
String res = jsonTest.getString(KEY_SUCCESS);
JSONObject testData = jsonTest.getJSONObject(TAG_TEST);
test = new TestBean();
test.setTestid(testData.getInt(TAG_TEST_ID));
test.setUid(testData.getInt(TAG_UID));
JSONArray list = new JSONArray();
String list2;
for (int position = 0; position < expressionList.size(); position++) {
Gson gson = new Gson();
list.put(gson.toJson(expressionList.get(position)));
}
Log.d(TAG, "JSONArray list coy : " + list);
UserFunctions uf = new UserFunctions();
JSONObject jsonHistoryList = new JSONObject();
jsonHistoryList = uf.storeHistoryList(list.toString());
if (Integer.parseInt(res) == 1) {
result = true;
finish();
} else {
result = false;
}
}
} catch (JSONException e) {
e.printStackTrace();
return false;
}
// TODO: register the new account here.
return result;
}
这里是storeHistoryList方法:
public JSONObject storeHistoryList(String list) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tag", storeHistory_tag));
params.add(new BasicNameValuePair("list", list));
JSONObject json = jsonParser.getJSONFromUrl(URL, params);
return json;
}
我想将列表传递给Web服务
list是一个arraylist ExpressionBean
我使用gson转换bean到json
但是当我执行时,日志说
“解析数据时出错…
jsonarray无法转换为jsonobject
我必须做什么?
谢谢
解决方法:
试试这段代码
JSONParser.java
public class JSONParser
{
static InputStream is ;
static JSONObject jObj = null;
static String json = "";
String Dataurl = "";
// constructor
public JSONParser(String url)
{
Dataurl = url;
}
// function get json from url by making HTTP POST or GET method
public JSONObject makeHttpRequestResponse(String method,List<NameValuePair> Data_Request_Response)
{
try {
// check for request method
if(method == "POST_Request_Response")
{
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(Dataurl);
httpPost.setEntity(new UrlEncodedFormEntity(Data_Request_Response));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}
else if(method == "GET_Request_Response")
{
HttpClient httpClient = new DefaultHttpClient();
String paramString = URLEncodedUtils.format(Data_Request_Response, "utf-8");
Dataurl += "?" + paramString;
HttpGet httpGet = new HttpGet(Dataurl);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (ClientProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
json = sb.toString();
}
catch (Exception e)
{
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try
{
jObj = new JSONObject(json);
}
catch (JSONException e)
{
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}// End Http Request Response
}
Yourfilename.java
// Object of the Json Parser Class
JSONParser mJsonParser = new JSONParser(DataUrl);
JSONObject mJsonObject_Request = new JSONObject();
List<NameValuePair> Send_Request = new ArrayList<NameValuePair>();
Send_Request.add(new BasicNameValuePair("Token", "Data"));
Send_Request.add(new BasicNameValuePair("Token1","Data"));
try {
mJsonObject_Request = mJsonParser.makeHttpRequestResponse("POST_Request_Response",Request);
Log.d("No Of Tables", "" + mJsonObject_Request.names().length());
Log.d("Name Of Tables", "" + mJsonObject_Request.names());
Log.d("DATA", "" + mJsonObject_Request);
}
catch (Exception e) {
}
这里的数据URL是您的Web服务链接.
内容总结
以上是互联网集市为您收集整理的将arraylist bean从android传递给webservice php全部内容,希望文章能够帮你解决将arraylist bean从android传递给webservice php所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。