JAVA中使用JSON进行数据传递示例
最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作。 其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JSON字符串来传递数据并在WEB前端或者Android客户端使用JSON来解析接收到的数据。 首先,在JAVA中使用JSON需要引入 org.json 包, 并在程序中引入相应的JSON类: import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; 其次,在服务器端的Servlet类中,可以使用如下方法收集数据并生成相应的JSON字符串 //声明一个Hash对象并添加数据 Map params = new HashMap(); params.put("username",username); params.put("user_json",user); //声明JSONArray对象并输入JSON字符串 JSONArray array = JSONArray.fromObject(params); put.println(array.toString()); 在WEB前端可以通过javascript直接对JSON字符串进行解析,在Android客户端的话,需要使用JSON类来解析字符串: //@description: 根据接收到的JSON字符串来解析字符串中所包含的数据和数据对象 //接收到的JSON字符串 String result = "[{"username": "your name","user_json": {"username": "your name","nickname": "your nickname"}}]"; //根据字符串生成JSON对象 JSONArray resultArray = new JSONArray(result); JSONObject resultObj = resultArray.optJSONObject(0); //获取数据项 String username = resultObj.getString("username"); //获取数据对象 JSONObject user = resultObj.getJSONObject("user_json"); String nickname = user.getString("nickname"); 其实,主要就是涉及到以下集中数据类型之间的转换: 1. String 转换为JSON对象 import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; //别忘了添加上JSON包哦! public class StringToJSON { public static void main(String[] args) throws JSONException{ System.out.println("abc"); //定义JSON字符串 String jsonStr = "{"id": 2," + " "title": "json title"," + ""config": {" + ""width": 34," + ""height": 35," + "},"data": [" + ""JAVA","JavaScript","PHP"" + "]}"; //转换成为JSONObject对象 JSONObject jsonObj = new JSONObject(jsonStr); //从JSONObject对象中获取数据 JavaBean bean = new JavaBean(); //根据属性名称获取int型数据; bean.setId(jsonObj.getInt("id")); //根据属性名获取String数据; bean.setTitle(jsonObj.getString("title")); //根据属性名获取JSONObject类 JSONObject config = jsonObj.getJSONObject("config"); bean.setWidth(config.getInt("width")); bean.setHeight(config.getInt("height")); //根据属性名获取JSONArray数组 JSONArray data = jsonObj.getJSONArray("data"); for(int index = 0,length = data.length(); index < length; index++) { //这里在org.json.JSONArray对象中居然没有找到toArray方法,求各位网友给出解决办法啊! // bean.setLanguages(String[]); } } } class JavaBean{ private int id ; private String title; private int width; private int height; private String[] languages; //这里省略了设置器和访问器 } 2. JSON对象转换为String字符串 public static void main(String[] args) throws JSONException { //创建JSONObject对象 JSONObject json = new JSONObject(); //向json中添加数据 json.put("username","wanglihong"); json.put("height",12.5); json.put("age",24); //创建JSONArray数组,并将json添加到数组 JSONArray array = new JSONArray(); array.put(json); //转换为字符串 String jsonStr = array.toString(); System.out.println(jsonStr); } 最终输出结果为: [{"username":"wanglihong","height":12.5,"age":24}] 3. 集合转换为JSONArray对象 public static void main(String[] args)throws JSONException{ //初始化ArrayList集合并添加数据 List<String> list = new ArrayList<String>(); list.add("username"); list.add("age"); list.add("sex"); //初始化HashMap集合并添加数组 Map map = new HashMap(); map.put("bookname","CSS3实战"); map.put("price",69.0); //初始化JSONArray对象,并添加数据 JSONArray array = new JSONArray(); array.put(list); array.put(map); //生成的JSON字符串为:[["username","age","sex"],{"price":69,"bookname":"CSS3实战"}] } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 浅谈java调用Restful API接口的方式
- Java编程实现的二维数组转置功能示例
- java – 防止ehcache尝试在启动时访问Internet
- MediaPlayer.isplaying()方法中的java.lang.IllegalStateEx
- JAAS LOGIN IN WEBLOGIC SERVER--reference
- java – 如何解析包含BOM的XML文件?
- java – EJB3 / JPA @Transactional
- java – 这个同步代码如何破解?
- Java作为与MySQL交互的cron脚本与使用PHP
- java调用浏览器打开url(支持Mac,Unix,Linux,Windows)