json解析

解析json的方式
1.自然是要拿到 后台给你的url和要传的参数了.比如我的项目需要获得json
需要的url:http://192.168.1.1:8080/VipManager/action
需要的参数:customId = 6, userId = 20
那么需要发送的请求就是http://192.168.1.1:8080/VipManager/action?customId = 6&userId = 20

那么怎么才能把参数传递过去呢?肯定就要借助工具了,一般传递参数有get和post两种,至于用哪种方式,客户端是很好实现的,直接指定就好了.
我这里解析发送请求用的方式是:commons-net-3.3.jar,里面有一个NetUtils的工具类,首先把需要传过去的参数纯入到map集合当中,key装的是键名,value装的是键值.
具体形式就长这样
//用一个map集合装参数
Map<String, String> postvalues = new HashMap<String, String>();
//传入需要的参数
postvalues.put("type", "aa");
postvalues.put("customName","aa");
//用到的链接服务器的工具,
new NetUtils(new NetCallBack() {
@Override
public void getNet(NetCallBack_State state, String backString) {
//state代表的是当前网络链接状态,只有为ok的时候表示已经连上了.,backString是服务器返回的json数据
switch (state) {
case error:
ToastUtils.show(MyCircuitsActivity.this, "网络错误");
case noNet:
ToastUtils.show(MyCircuitsActivity.this, "网络错误");
case wrong:
ToastUtils.show(MyCircuitsActivity.this, "网络错误");
break;
case ok:
success(backString);//自定义的方法,用来处理后台返回的json数据
break;
default:
break;
}
}
}).read(this, false, Constant.BASE_URL + Constant.MYCIRCUITS_URL, null, //参数只需要管传过去的url,还有map集合的名字,其中倒数第二个true表示的使 用post请求,如果为false表示是get请求
null, false, postvalues, "utf-8", true, true);

然后就是处理后台返回的json数据了,至于怎么处理,工具还是很多了,我这里就讲我用的方法,解析json的代码都放到了一叫走jsonUtils的工具类中,
json解析中非常重要的一点就是一定需要建立javabean,就是用来存放数据的,假设我现在有一个学生类,然后需要获得学生的姓名,年龄和学号,解析就可以这么写
protected void success(String backString) {
//将json数据解析后放到一个集合当中
List dataList = JsonUtils.getData(backString);
//然后数据就拿到了,这个数据可以用来填充listView,就是在oncreate中自定义一个方法,专门用来加载数据,比如叫做getData(),然后加载完成后直接在在方法中           setAdapter就可以往listView item中填充数据了.
//如果是加载图片的话,后台给的数据应该是url,那么先解析url,然后在通过url去获得图片,在将图片填充到imageView.
}
//jsonUtilsz中的代码
public static List<Students> getData(String json) {
List<Students> list = new ArrayList<Students>();
Students students = null;
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray jsonArray = new JSONArray(json);

for (int i = 0; i < jsonArray.length(); i++) {
jsonObject = jsonArray.getJSONObject(i);
students = new Students();
students.seName(jsonObject2.optString("name"));
students.setAge(jsonObject2.optString("age"));
students.setNumber(jsonObject2.optString("number"));
list.add(students);
}
} catch (JSONException e) {
e.printStackTrace();
return null;
}
return list;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值