Json学习应用

[size=large]
Json应用
由于懂味项目的需要、我这两天开始了开始了JSon的学习和应用、对于这个JSon,最初自己是什么都不懂、甚至都不知道它是应用到什么地方。没办法、做软件开发的就是这样:一个项目给你、即使你什么都不懂,都要很快地把它学习和应用。
按照以往常用的方法、从百度上一个一个地找;看文档、读博客...慢慢地发现所有的文档、博客都是源自一个人的。就这样慢慢地查看了各个网页的资料后。(查看资料的过程不是想象的那么容易、一个个网页下来,眼珠子都快掉下来了。而且这个过程就花了我一天左右的时间)选择了一个最为详细的博客作为参考、然后按照其步骤走下去。
值得庆幸的是按模板走的过程非常顺利、之前按李雄志和魏垚他们给资料走、走个几个过程都没有成功。有了这个成功的案列后、我就开始一步步查看案列,分析其中的过程。分析完后才发现原来Json就是个纸老虎。像hu总说的那样、跟其他的没什么两样。只是一种格式而已。
下面我就详细分析下它的应用过程吧:最开始、我们在运用前需要下载好Json的包、我应用时下载了好几个包、还没了解每个包相应的作用。怕麻烦的话、我把它附在后面,有需要可以下载使用。包的应用最好是复制到lib目录下;之前的那种引入包的方法在这里会有问题。建议自己复制。好了、前期的准备工作好了后、下面我们开始新建一个Servlet类、里面有自动生成的DoPost方法和DoGet方法;我们应用时先在DoPost方法里调用DoGet方法、代码如下:
[/size]

doGet(request,response);

[size=large]
然后我们就重点在DoGet方法里实现数据转换Json方法;代码如下、
[/size]

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置字符编码
response.setContentType("text/plain;UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
//准备用户数据
DBInquire inquire=new DBInquire();
//进入数据库
DbEntrance mysql=new DbEntrance();
inquire.conn=mysql.getDBConnect();
list=inquire.selectUser();
//实例化一个JSON数据,用来存储用户数据
JSONArray array=new JSONArray();
//遍历链表,将数据一个个转移到JSON链表中
for(int i=0;i<list.size();i++){
System.out.println("打印出数据库中的数据:"+list.get(i).getUName()+"-=-="+list.get(i).getUPwd());
//实例化一个JSON对象,用来存储用户数据
JSONObject obj = new JSONObject();
//存储用户名
obj.put("User",list.get(i).getUName());
//存储用户密码
obj.put("Pwd", list.get(i).getUPwd());
//存储用户电话
obj.put("tel",list.get(i).getUNumber());
//存储用户电子邮件
obj.put("email", list.get(i).getUEmail());
//添加到JSON链表中
array.add(obj);
}
//输出
out.write(array.toString());
out.flush();
out.close();

}

[size=large]
在这里使用的需要注意的是有关我们数据库的连接问题:有关密码,每个人的数据库密码是不一样的;然后将其部署到服务器上、关于怎么部署就是点击所建的servlet右键运行就好、然后在网页上以键值对形式显示数据库中的形式。

接着就是Android端的接收情况了、我们新建一个Android项目,在layout布局里面建一个TextView 代码如下:
[/size]

<TextView android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

[size=large]
布局用于显示所接收的数据。然后回到MainActivity里、进行地址连接,这里需要注意的是:1、连接网络地址,2、接收时关于对应的Key值。代码如下:
[/size]

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("-=-=-=-=-=-=");
setContentView(R.layout.activity_main);
System.out.println("8888888888888888888");
try{
StringBuffer sb = new StringBuffer();
//在测试过程中,经常是用本机做测试服务器,访问本机的IP地址要设置为10.0.2.2
String url = "http://10.0.2.2:8080/Coupons/JsonServletAndroid";
String body = getContent(url);
JSONArray array = new JSONArray(body);
System.out.println("所得Json的长度是:"+array.length());
for(int i=0; i<array.length(); i++){
System.out.println("标记符11111111111111111111");
JSONObject obj = array.getJSONObject(i);
System.out.println("打印出第"+i+"个数据是:"+obj.getInt("User")+"-=-"+obj.getInt("Pwd"));
sb.append("tel:").append(obj.getString("tel")).append("/r"+"/n");
sb.append("name:").append(obj.getString("User")).append("/r"+"/n");
sb.append("pwd:").append(obj.getString("Pwd")).append("/t");
sb.append("email:").append(obj.getString("email")).append("/r/n");
sb.append("----------------------/r/n");
}
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText(sb.toString());
}catch(Exception e){}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值