关于学习json的总结
2016-01-03 13:28
771 查看
什么是json
JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,以文为础,且易于让人阅读,同时也方便了机器进行解析和生成。JSON简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构,其可以将JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。JSON采用完全独立于程序语言的文本格式,但是也使用了类C语言的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言JSON建构有两种结构
son简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构1、对象:对象在js中表示为“{}”扩起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 [“java”,”javascript”,”vb”,…],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
不多说,直接上代码
一:准备工作:
要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。
导入下面的这几个包:
点击下载依赖包 http://download.csdn.net/detail/qq_25591985/9387669
二:java中使用json
目录的结构User.java如下
package json; public class User { private String name; private int age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
jsonText.java如下
package json; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /* * 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: * JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。 */ public class JsonText { public static void main(String[] args) { // TODO Auto-generated method stub beanTOJson(); arrayToJson(); listToJson(); } /** * bean对象转为json * return void * */ public static void beanTOJson(){ User user=new User(); user.setAge(30); user.setName("刘德华"); user.setSex("男"); JSONObject json=JSONObject.fromObject(user); System.out.println("-----------------------------------------beanToJson() 开始------------------------------------------------"); System.out.println("这是对象bean转换为json"+json.getClass()); System.out.println("-----------------------------------------beanToJson() 结束------------------------------------------------"); } /** *array转为json *return void */ public static void arrayToJson(){ User user=new User(); user.setAge(30); user.setName("刘德华"); user.setSex("男"); User user1=new User(); user.setAge(30); user.setName("张学友"); user.setSex("男"); User[] array=new User[]{user,user1}; JSONArray json=JSONArray.fromObject(array); System.out.println("-----------------------------------------arrayToJson() 开始------------------------------------------------"); System.out.println("这是对象array转换为json"+json.toString()); System.out.println("-----------------------------------------arrayToJson() 结束------------------------------------------------"); } /** *List转为json *return void */ public static void listToJson(){ User user=new User(); user.setAge(30); user.setName("刘德华"); user.setSex("男"); User user1=new User(); user.setAge(30); user.setName("张学友"); user.setSex("男"); List<User> list =new ArrayList<User>(); list.add(user); list.add(user1); JSONArray json=JSONArray.fromObject(list); System.out.println("-----------------------------------------listToJson() 开始------------------------------------------------"); System.out.println("这是对象list转换为json"+json.toString()); System.out.println("-----------------------------------------listToJson() 结束------------------------------------------------"); } }
下面对于各部分的代码做说明:
bean对象转为json
return void
运行结果如下
2. 数组转换成json代码
2. list转换成json代码
四:jsp中使用json
1、json字符串和json对象的区别。字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = ‘this is string’;
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = “{StudentID:’100’,Name:’tmac’,Hometown:’usa’}”;
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: “100”, Name: “tmac”, Hometown: “usa” };
直接上图上代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script type="text/javascript" src="${pageContext.request.contextPath}/jslib/jquery-1.11.1.js"></script> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> /** * 方法一,用eval解析出json字符串,不过eval解析json有安全隐患 */ var user='{"name":"张三","sex":"男"}' var userb=eval("("+user+")"); alert(userb.name+" "+userb.sex); /**提供JSON.parse()方法解析JSON,提供JSON.stringify()方法生成JSON,stringify()用于从一个对象解析出字符串用eval解析出json字符串,不过eval解析json有安全隐患 * 现在大多数浏览器(IE8及以上,Chrome和Firefox差不多全部)自带原生JSON对象 */ $(function(){ var json=JSON.parse( user ); $("#json").click(function(){ alert(json.sex); alert(json.name); //或者alert(obj.person[0]["name"]) }) }) </script> <title>Insert title here</title> </head> <body> <input type="button" value="从json中读取数据" id="json"/> </body> </html>
运行结果如下:
下面介绍eval和JSON.parse
eval:
JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:
JSON.parse
现在大多数浏览器(IE8及以上,Chrome和Firefox差不多全部)自带原生JSON对象,提供JSON.parse()方法解析JSON,提供JSON.stringify()方法生成JSON,请使用这两个方法!
相关文章推荐
- 基于javascript实现窗口抖动效果
- 实例讲解避免javascript冲突的方法
- 详解js中class的多种函数封装方法
- javascript回车提交表单
- jsp include指令标签
- JS获取屏幕大小
- XML和json解析
- js中利用tagname和id获取元素的方法
- 信息页文内画中画广告js实现代码(文中加载广告方式)
- JavaScript进阶(三)常见工具(校验、通用)
- JavaScript进阶(三)常见工具(校验、通用)
- 基于javascript实现简单计算器功能
- 详解Javascript事件驱动编程
- 基于javascript实现仿百度输入框自动匹配功能
- JavaScript:void(0);的作用
- JavaScript进阶(二)在一个JS文件中引用另一个JS文件
- JavaScript进阶(二)在一个JS文件中引用另一个JS文件
- JavaScript进阶(一)抽离公共函数
- JavaScript进阶(一)抽离公共函数
- js实现搜索框关键字智能匹配代码