关于学习json的总结
来源:互联网 发布:mac桌面的文件不见了 编辑:程序博客网 时间:2024/04/20 19:10
什么是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,请使用这两个方法!
- 关于学习json的总结
- vollty中关于json的学习总结
- 关于json的总结
- 关于JSON的总结
- 关于JSON的一些总结
- 关于json的学习笔记
- 关于Json的一点小总结,
- 关于字符串转换成json的总结
- 关于学习的总结
- 关于js中 json对象和json字符串的总结
- 关于 unity如何读写Json的学习
- json 几天学习的小知识 总结~~
- ajax与json的学习总结
- 关于MSP430的学习总结
- 关于String的学习总结
- 关于java学习的总结
- 关于学习ajax的总结
- 关于机器学习的总结
- roslaunch文件中的局部参数与全局参数
- Catch That Cow
- 【C#——走进你的世界】
- 无线网络攻击类型及防范
- JAVA学习笔记(二)——基本语法
- 关于学习json的总结
- mysql之修改编码
- mysql linux源码安装mysql5.6.22
- Java-螺旋方阵
- web 监听器
- NumberPicker上一篇的补充:取消焦点,设置循环滚动,监听
- python auto-increment
- js版本textarea自适应高度
- <LeetCode OJ> 31. Next Permutation