android客户端服务器传输,Struts2服务器和Android客户端使用JSON进行数据的传递

前阵子开发利用框架的服务器和Android机客户端的CS架构的程序,用到了JSON进行数据的传递,感觉JSON在获取出传递的数据方面还是很方便的,网上没有比较好的案例,先将服务器和客户端如何用json进行数据交互的例子呈现如下,待他日可以复习。代码不能直接复用,但是关于数据传输的写法已经成功测试了

服务器端接收客户端发来的json对象,解析该json对象的数据后,再给客户端反送一个封装了新的数据的json对象

Public class Action extends ActionSupport implements ServletRequestAware,ServletResponseAware{

private String Json;

private int age;

private String name;

private String password;

private HttpServletRequest request;

private HttpServletResponse response;

public void execute()

{

try{

JSONObject obj=new JSONObject(this.getJson())

this.setAge(obj.getInt("age"));

this.setName(obj.getString("name"));

this.setPassword(obj.getString("password"));

}catch(org.json.JSONException e)

{

e.printStack();

}

JSONObject object=new JSONObject();

object.put("age",22);

object.put("name",nikerlover);

object.put("password",12345);

JSONObject  tem=new JSONObject();//若需要传递数组,夹杂其他的杂项,可以用Map map=new HashMap()将数据封装好,创建List>

list=new ArrayList>(),然后,list.add(map);再用JSONObject进行封装,JSONObject和JSONArray可以相互嵌套,你懂的

JSONObject temp=new JSONObject();

try{

tem.put("user",object);

temp.put("json",tem);

response.setCharacterEncoding("UTF-8");

response.getWriter().write(temp.toString());

}catch(Exception e)

{

e.printStackTrace();

}

}

// Getter and Setter method

//public void setServletResponse(HttpServletResponse)

.

.

}

Android客户端:先给服务器发送一个封装好了的JSON对象,再等待服务器反送response对象,将response里的JSON对象获取并解析

pubic void OnCreate(Handler instance)

{

String Url="http://59.64.34.45/project/index.action";

HttpClient client=new DefaultHttpClient();

HttpPost post=new HttpPost(url);

List pair=new ArrayList()'

try{

JSONObject obj=new JSONObject();

obj.put("age",2);

obj.put("name",nikerlover);

obj.put("password",45667);

JSONObject json=new JSONObject();

pair.add(new BasicValueNamePair("json",obj.toString()));

post.setEntity(new UrlEncodedFormEntity(pair,HTTP.UTF_8));

HttpResponse response=client.execute(post);

if(response.getStatusLine().getStatusCode()==200)

{

String responseStr=EntityUtils.toString(response.getEntity());

JSONObject json=new JSONObject(responseStr).getJSONObject("json");

JSONObject object=json.getJSONObject("user");

int Age=obj.getInt("age");

String Name=obj.getString("name");

String Password=obj.getString("password");

}

}

}0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值