4个答案 按时间排序 按投票排序
-
采纳的答案
你需要搜一下Gson,和apache httpclient下载导入对应的jar包
web端:
首先,想办法把mysql取出的数据放到一个list中;
然后,参考这个帖子http://huyizizhen.iteye.com/blog/1453621 将list转成json
最后,返回给客户端out.println(json.toString());
客户端:
需要一个httpclient
String jsonstr = httpclient.get(url);2014年5月12日 10:04
-
通过 JSON RPC,这是本人前几天做的demo,应该满足你的需求,可直接运行
java jsonrpc Server服务器
http://download.csdn.net/detail/zengxx1989/7310371
Jsonrpc_android_Client
http://download.csdn.net/detail/zengxx1989/73103152014年5月12日 16:16
-
给你点代码看吧 package com.demo; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.BasicHttpParams; import org.apache.http.protocol.HTTP; import android.util.Log; public class WebDataGetApi { private static final String TAG = "WebDataGetAPI"; private static final String USER_AGENT = "Mozilla/4.5"; protected String getRequest(String url) throws Exception { return getRequest(url, new DefaultHttpClient(new BasicHttpParams())); } protected String getRequest(String url, DefaultHttpClient client) throws Exception { String result = null; int statusCode = 0; HttpGet getMethod = new HttpGet(url); Log.d(TAG, "do the getRequest,url=" + url + ""); try { getMethod.setHeader("User-Agent", USER_AGENT); // HttpParams params = new HttpParams(); // 添加用户密码验证信息 // client.getCredentialsProvider().setCredentials( // new AuthScope(null, -1), // new UsernamePasswordCredentials(mUsername, mPassword)); HttpResponse httpResponse = client.execute(getMethod); // statusCode == 200 正常 statusCode = httpResponse.getStatusLine().getStatusCode(); Log.d(TAG, "statuscode = " + statusCode); // 处理返回的httpResponse信息 result = retrieveInputStream(httpResponse.getEntity()); } catch (Exception e) { Log.e(TAG, e.getMessage()); throw new Exception(e); } finally { getMethod.abort(); } return result; } /** * 处理httpResponse信息,返回String * * @param httpEntity * @return String */ protected String retrieveInputStream(HttpEntity httpEntity) { int length = (int) httpEntity.getContentLength(); if (length < 0) length = 10000; StringBuffer stringBuffer = new StringBuffer(length); try { InputStreamReader inputStreamReader = new InputStreamReader( httpEntity.getContent(), HTTP.UTF_8); char buffer[] = new char[length]; int count; while ((count = inputStreamReader.read(buffer, 0, length - 1)) > 0) { stringBuffer.append(buffer, 0, count); } } catch (UnsupportedEncodingException e) { Log.e(TAG, e.getMessage()); } catch (IllegalStateException e) { Log.e(TAG, e.getMessage()); } catch (IOException e) { Log.e(TAG, e.getMessage()); } return stringBuffer.toString(); } } 建立JsonDataGetApi.java import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class JsonDataGetApi extends WebDataGetApi { private static final String BASE_URL = "http://10.0.2.2:82/AccountService/"; private static final String EXTENSION = "Json/";; public JSONObject getObject(String sbj) throws JSONException, Exception { return new JSONObject(getRequest(BASE_URL + EXTENSION + sbj)); } public JSONArray getArray(String sbj) throws JSONException, Exception { return new JSONArray(getRequest(BASE_URL + EXTENSION + sbj)); } } 我们的主Activity中调用刚才的方法, 在这一步中我们需要引入Google的gson 库gson-1.6.jar public class WebData extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); getJsonData(); } public void getJsonData() { JsonDataGetApi api = new JsonDataGetApi(); JSONArray jArr; JSONObject jobj; try { //调用GetAccountData方法 jArr = api.getArray("GetAccountData"); //从返回的Account Array中取出第一个数据 jobj = jArr.getJSONObject(0); GsonBuilder gsonb = new GsonBuilder(); //Json中的日期表达方式没有办法直接转换成我们的Date类型, 因此需要单独注册一个Date的反序列化类. //DateDeserializer ds = new DateDeserializer(); //给GsonBuilder方法单独指定Date类型的反序列化方法 //gsonb.registerTypeAdapter(Date.class, ds); Gson gson = gsonb.create(); Account account = gson.fromJson(jobj.toString(), Account.class); Log.d("LOG_CAT", jobj.toString()); ((TextView) findViewById(R.id.Name)).setText(account.Name); ((TextView) findViewById(R.id.Age)).setText(account.Age); ((TextView) findViewById(R.id.Birthday)).setText(account.Birthday .toGMTString()); ((TextView) findViewById(R.id.Address)).setText(account.Address); } catch (Exception e) { Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); TextView movie_Address = (TextView) findViewById(R.id.Address); movie_Address.setText(e.getMessage()); } } } layout下的main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/Name" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/Age" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/Birthday" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/Address" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> 大致就是这么多
2014年5月12日 10:56
-
首先你从数据库读取到一系列的对象,当然,也可以用Map来代替,然后把它们放在一个List中,然后再调用JSON库的序列化方法,使之成为一个json字符串,然后再写到客户端就可以了,这个时候客户端收到的就是一个JSONArray了。
2014年5月11日 23:10
相关推荐
一个Android客户端访问服务器数据库的实例,涉及mySQL数据库、json数据传输、Struts2+javabean+servlet,非常适合服务器后台入门
JSON从服务器下载数据到Android客户端 包括web端和Android手机端 注意修改ip和mySQL用户名 密码 详情见 http://blog.csdn.net/u011109881/article/details/40110613
实现的功能:通过Android客户端访问web服务器,实现一个登录功能,判断用户输入的用户名与密码是否与数据库的一致。 使用技术:服务端:Struts2+javabean+servlet(struts2的) 客户端:Android 4.0.2 数据库:MySQL...
实现的功能:通过Android客户端访问web服务器,实现一个登录功能,判断用户输入的用户名与密码是否与数据库的一致。 使用技术:服务端:Struts2+javabean+servlet(struts2的) 客户端:Android 4.0.2 数据库:MySQL...
掌握基于HttpClient、JSON数据...掌握将服务器响应装换为JSON对象或数组、通过Android客户端加载服务器响应; 开发java web project作为服务端; 开发Android客户端; 采用HttpClient的方式在服务端和客户端进行通信;
- 设计API,利用http协议,采用JSON进行服务端和Android端数据的交互; - 使用PHP+MySql 利用Web技术(html javascript jquery Bootstrap等)开发后台管理界面及其功能; - 使用Java进行Android客户端开发(用户注册...
MySQL数据库里存了几个简单的数据,通过Android客户端访问一个用Servlet写的web工程,取得数据库里面的数据,将数据显示在手机上。客户端和服务器之间交换数据使用了JSON。
开发环境: Myclipse/Eclipse/Idea都可以(服务器端) + Eclipse/AndroidStudio都可以(手机客户端) + mysql数据库 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! 服务器和...
开发环境: Eclipse/Idea + Eclipse/AndroidStudio + mysql数据库 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! 服务器和客户端数据通信格式: XML格式(用于传输查询的记录...
实现了完整的新闻的web服务端和Android客户端, web使用MySQL数据口存储新闻Json数据,对客户端发出的请求, 用servlet响应新闻数据,客户端获取后,进行解析展示。此外还添加了 评论。分享的功能。
开发环境: Myclipse/Eclipse/Idea都可以(服务器端) + Eclipse/AndroidStudio都可以(手机客户端) + mysql数据库 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! 服务器和...
## 开发环境: Myclipse/Eclipse/Idea都可以(服务器端) + Eclipse/AndroidStudio都可以(手机客户端) + mysql数据库 ## 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! ## ...
## 开发环境: Myclipse/Eclipse/Idea(服务器端) + Eclipse/AndroidStudio(手机客户端) + mysql数据库 ## 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! ## 服务器和客户端...
设计API,利用http协议,采用JSON进行服务端和Android端数据的交互; 使用PHP+MySql 利用Web技术(html javascript jquery Bootstrap等)开发后台管理界面及其功能; 使用Java进行Android客户端开发(用户注册登陆,...
## 开发环境: Myclipse/Eclipse/Idea(服务器端) + Eclipse/AndroidStudio(手机客户端) + mysql数据库 ## 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! ## 服务器和客户端...
系统一2个身份: 1 用户: 注册登录客户端app后可以查询所有新闻公告列表和查看新闻详情信息:查询所有公开的网盘...服务器和客户端数据通信格式: XML格式(用于传输查询的记录集)和json格式(用于传输单个的对象信息)
## 开发环境: Myclipse/Eclipse/Idea都可以(服务器端) + Eclipse(手机客户端) + mysql数据库 ## 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! ## 服务器和客户端数据通信...