对象转换为JSON数据格式&使用JQuery获取数据
2016-09-02 00:58
981 查看
将对象转换为JSON数据格式
我们需要json-lib-2.3-jdk15.jar架包(当然还需要其它架包),来实现对象转JSON数据格式。此架包提供两个类来实现转换,JSONObject.fromObject(object);将对象转换成json数据格式;JSONArray.fromObject(object);将数组转换成json数据格式。
注意:在json数据格式中你可能会看到使用{ }与[ ] 包裹的数据,这里{ }包裹的是对象或者Map对象,而[ ]包裹的则是数组或List集合。
下面我们来一个例子:
我们有一个实体类为Users,其中有username属性和password属性
输出结果
1.jsonListUsers:说明list集合中包含两个对象
2.jsonMapUser:Map集合是按对象形式输出的,我们可以将键看成是对象中的属性。
注:
在返回json数据的时候要注意,如果你是直接写成这样是不行
第一种:
第二种:
重点注意:JSON是对象
我用的是谷歌浏览器,按F12可以进入调试界面,当我们返回的JSON格式正确&你设置的dataType为json的时候会显示如下信息,这说明正确。
当我们没有设置dataType属性,或属性设置错误会出现或不出现如下界面(说白了就是给你一个字符串),这说明是错误的
如果一直获取不到数据,大家需要注意一下这里。
下面我们使用jquery在jsp页面输出这些值
javascript变量转JSON
如果在javascript中自己定义了一个json数据
如:var json = '{"1":{"password":"123","username":"小彩虹"},"2":{"password":"123","username":"小豆豆"}}';
则需要使用
var parse = $.parseJSON(json);方法来将json变量中的值转换成JSON对象,因为不适用此方法,json变量中存在的值为字符串。
此笔记代码
http://download.csdn.net/detail/gxy1317/9619516
我们需要json-lib-2.3-jdk15.jar架包(当然还需要其它架包),来实现对象转JSON数据格式。此架包提供两个类来实现转换,JSONObject.fromObject(object);将对象转换成json数据格式;JSONArray.fromObject(object);将数组转换成json数据格式。
注意:在json数据格式中你可能会看到使用{ }与[ ] 包裹的数据,这里{ }包裹的是对象或者Map对象,而[ ]包裹的则是数组或List集合。
下面我们来一个例子:
我们有一个实体类为Users,其中有username属性和password属性
public class Users { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Users(String username, String password) { this.username = username; this.password = password; } public Users() { } }下面我们使用代码来实现转换
Users users = new Users("张三", "q123"); //将Users对象转换为JSONObject JSONObject jsonObject = JSONObject.fromObject(users); //使用JSONObject的toString()方法将JSONObject转换成字符串 System.out.println( "users:" + jsonObject.toString() ); List<String> listStr = new ArrayList<String>(0); listStr.add("小明"); listStr.add("小红"); JSONArray jsonListStr = JSONArray.fromObject(listStr); System.out.println( "jsonListStr:" + jsonListStr.toString() ); List<Users> listUsers = new ArrayList<Users>(0); listUsers.add(new Users("大名", "123")); listUsers.add(new Users("大红", "456")); JSONArray jsonListUsers = JSONArray.fromObject(listUsers); System.out.println( "jsonListUsers:" + jsonListUsers.toString() ); Map<String, String> mapStr = new HashMap<String, String>(0); mapStr.put("彩虹", "彩彩"); mapStr.put("豆豆", "小豆"); JSONObject jsonMapStr = JSONObject.fromObject(mapStr); System.out.println( "jsonMapStr:" + jsonMapStr.toString() ); Map<String, Users> mapUser = new HashMap<String, Users>(0); mapUser.put("1", new Users("小彩虹", "123")); mapUser.put("2", new Users("小豆豆", "123")); JSONObject jsonMapUser = JSONObject.fromObject(mapUser); System.out.println( "jsonMapUser:" + jsonMapUser.toString() );注意:请看好是用那种方式转换的
输出结果
users:{"password":"q123","username":"张三"} jsonListStr:["小明","小红"] jsonListUsers:[{"password":"123","username":"大名"},{"password":"456","username":"大红"}] jsonMapStr:{"彩虹":"彩彩","豆豆":"小豆"} jsonMapUser:{"1":{"password":"123","username":"小彩虹"},"2":{"password":"123","username":"小豆豆"}}上面解释两个输出
1.jsonListUsers:说明list集合中包含两个对象
2.jsonMapUser:Map集合是按对象形式输出的,我们可以将键看成是对象中的属性。
注:
在返回json数据的时候要注意,如果你是直接写成这样是不行
response.getWriter().print(jsonListStr.toString()); response.getWriter().print(jsonListUsers.toString()); response.getWriter().print(jsonMapStr.toString()); response.getWriter().print(jsonMapUser.toString());这样的话无法在前台中获取数据(我这样是不行的),对于这种情况有两种解决方案
第一种:
String test = "[" + jsonListStr.toString() + "," + jsonListUsers.toString() + ","+ jsonMapStr.toString() + "," + jsonMapUser.toString() + "]";手动拼接成一个数字,取值使用下标取,取出来的值是对象还是数组,这取决于你的值。
第二种:
Map<String, Object> result = new HashMap<String, Object>(0); result.put("jsonListStr", jsonListStr); result.put("jsonListUsers", jsonListUsers); result.put("jsonMapStr", jsonMapStr); result.put("jsonMapUser", jsonMapUser); result.put("users", jsonObject); JSONObject jsonResult = JSONObject.fromObject(result); System.out.print(jsonResult.toString()); response.getWriter().print(jsonResult.toString());这种方式是创建了一个Map集合把数据都放进集合中,然后将集合转换成json对象,取值的时候需要通过键来取值,取出来的值是对象还是数组,这取决于你的值。
重点注意:JSON是对象
我用的是谷歌浏览器,按F12可以进入调试界面,当我们返回的JSON格式正确&你设置的dataType为json的时候会显示如下信息,这说明正确。
当我们没有设置dataType属性,或属性设置错误会出现或不出现如下界面(说白了就是给你一个字符串),这说明是错误的
如果一直获取不到数据,大家需要注意一下这里。
下面我们使用jquery在jsp页面输出这些值
<script> $(function () { $.ajax({ type:"POST", dataType:"JSON", url:"/jsonServlet", success:function(data){ var text = "获取jsonListStr下的所有元素<br/>";//用来保存输出信息 for(var key in data.jsonListStr){ text += data.jsonListStr[key] + "<br/>"; } text += "<br/>获取jsonListUsers下的所有元素<br/>"; for(var key in data.jsonListUsers){ text += "username" + data.jsonListUsers[key].username + "password" + data.jsonListUsers[key].password + "<br/>"; } text += "<br/>获取jsonMapStr下的所有元素,因为是Map集合所以要通过键来获取值<br/>"; for(var key in data.jsonMapStr){ text += data.jsonMapStr[key] + "<br/>"; } text += "<br/>获取jsonMapUser下的所有元素,因为是Map集合所以要通过键来获取值<br/>"; for(var key in data.jsonMapUser){ text += "username" + data.jsonMapUser[key].username + "password" + data.jsonMapUser[key].password + "<br/>"; } text += "<br/>获取users下的所有元素,因为是Map集合所以要通过键来获取值<br/>"; text += "username" + data.users.username + "<br/>"; text += "password" + data.users.password + "<br/>"; $("#json_info").html(text); } }); }); </script>输出结果
获取jsonListStr下的所有元素 小明 小红 获取jsonListUsers下的所有元素 username大名password123 username大红password456 获取jsonMapStr下的所有元素,因为是Map集合所以要通过键来获取值 彩彩 小豆 获取jsonMapUser下的所有元素,因为是Map集合所以要通过键来获取值 username小彩虹password123 username小豆豆password123 获取users下的所有元素,因为是Map集合所以要通过键来获取值 username张三 passwordq123
javascript变量转JSON
如果在javascript中自己定义了一个json数据
如:var json = '{"1":{"password":"123","username":"小彩虹"},"2":{"password":"123","username":"小豆豆"}}';
则需要使用
var parse = $.parseJSON(json);方法来将json变量中的值转换成JSON对象,因为不适用此方法,json变量中存在的值为字符串。
此笔记代码
http://download.csdn.net/detail/gxy1317/9619516
相关文章推荐
- 使用Javascript/jQuery将javascript对象转换为json格式数据
- 使用Javascript/jQuery将javascript对象转换为json格式数据
- 使用Javascript/jQuery将javascript对象转换为json格式数据
- 使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET
- 使用C#中JavaScriptSerializer类将对象转换为Json格式数据
- 前台js获取到后台json数据,eval解析json后,日期(object)对象转换为date日期格式显示
- jQuery中使用Ajax获取JSON格式数据
- 使用Java 语言可以方便的把任意对象转换成json格式的数据
- 使用Jsonlib将对象转换成json格式数据
- 为您解惑:jQuery中$.getJSON( )的使用方法简介之获取JSON格式的数据.........
- jQuery中使用Ajax获取JSON格式数据
- var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)
- json数据解析与JAVA对象转换以及在JQUERY中的使用
- jquery-ajax请求后台数据转换json显示在select下拉列表&&jquery获取下拉列表的值和显示内容的方法
- jQuery中使用Ajax获取JSON格式数据
- jQuery中使用Ajax获取JSON格式数据示例代码
- 使用ajax获取JSON数据的jQuery代码的格式
- jsp页面把获取的map数据转换成json格式的数据来使用
- jQuery中使用Ajax获取JSON格式数据示例代码
- Android JSON数据格式的解析,与简单对象、带泛型的List和Map的转换,以及GSON的使用