[开发学习]之JSON
来源:互联网 发布:人工智能电影优酷 编辑:程序博客网 时间:2024/06/06 05:36
1. JSON的基础包括两个结构:
1)一个名值对集合,称为对象(object),名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值
例如: {"firstname":"bre","lastname":"dhja"}
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
2)一个有序的值列表,称为数组(array)
用大括号包裹:["json","is","easy"]
数组可包含多个对象(用大括号包裹),
{"emplore":[{"firstname":"li","lastname":"sun"},{"firstname":"wang","lastname":"gui"}]}
说明:
JSON数组也存在一些限制,数组中的元素必须是得到支持的值。例如,Date对象不在支持的值之列,所以不能作为JSON数组的元素或JSON对象的一个属性。String与JavaScript字符串字面量有相同的表示,不过串必须用双引号包围。Number类似于JavaScript数字字面量,不过八进制和十六进制格式未得到支持; 方法不能使用JSON表示,因为JSON语法中不包括函数字面量。另外,JavaScript的new操作符也不是JSON语法的一部分,不能在对象或数组中使用。
2.把 JSON 文本转换为 JavaScript 对象
创建包含 JSON 语法的 JavaScript 字符串:
var txt='{"emplore:['+'{"firstname":"li","lastname":"gui"},'+'{"firstname":"sun","lastname":"er"}]"}';
var obj=eval("("+txt+")");
document.getElementById("usrname").innerHtml=obj.emplore[1].firstname;
3.Java代码转换成json代码
1)List集合转化为json对象
List list=new List();
list.add("zhang");
list.add("li");
JSONArray objson=JSONArray.fromObject(list);
String str=objson,toString()//将json对象转为
2)Map集合转换成json代码
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);
3.) Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
4). 数组转换成json代码
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
5). 一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );
6). beans转换成json代码
List list = new ArrayList();
JsonBean2 jb1 = new JsonBean2();
jb1.setCol(1);
jb1.setRow(1);
jb1.setValue("xx");
JsonBean2 jb2 = new JsonBean2();
jb2.setCol(2);
jb2.setRow(2);
jb2.setValue("");
list.add(jb1);
list.add(jb2);
JSONArray ja = JSONArray.fromObject(list);
4.使用过程(例如,在js当中读取后台数据)
首先从后台获得json形式的数据,放入以上类型(集合或者数据)当中,然后将其转为JSON对象(JSONArray或者JSONobject.fromObject())
然后可以在转为string字符串,在前台js当中,调用javascript的eval()方法将其转为javascript对象依次循环读取数据。
List<java bean对象> list=bean.getList();//通过javaBean对象bean,调用bean里面的getList()方法,返回一个list对象,该对象包含所需的json形式的数据(值对或者数组形式)
JSONArray jsonarray=JSONArray.fromObject(list)//将list对象转为json对象
PrintWrite pw=response.getWriter();
pw.print(jsonarray.toString);
//下面在前台js当中读取数据
success:function(msg){//AJAX请求成功的函数
var jsonmessage =eval(""+msg+"");
$(jsonmessage).each(function(i){
//循环返回的内容
$("#mess1").append(
jsonmessage[i].name+jsonmessage[i].age;
)
})
}
- [开发学习]之JSON
- iOS开发学习之Json解析
- Android开发学习之路--网络编程之xml、json
- JSON学习之二
- python学习之 json
- Android开发之Json-构建Json文本
- 一步一步的学习android应用开发到系统底层开发之android数据解析JSON篇
- JSON详细学习之JSON in JavaScript
- JSON学习之JSON及其数据绑定
- JSON-RPC-Java学习之JSON-RPCspecifications
- Json学习笔记之Json语法
- Json学习笔记之Json的使用
- json 学习之(json基础)
- Ajax开发之JSON应用
- Winphone开发之JSON解析
- Android开发之JSON解析
- Android开发之JSON使用
- iOS开发基本技能之JSON
- 搜狗笔试题(请高手们提供牛逼答案)
- 图片的异步加载
- poj 1450 水题
- hdu4283 You Are the One
- 逆波兰式
- [开发学习]之JSON
- 腾讯2013校园招聘笔试题
- Ubuntu 12.04 - 修改环境变量导致无法登录系统
- baseAdapter
- 羌笛声声胡笳怨,此心长寄天涯远
- Mesa 3D
- 新生活新开始
- HDU 1068 最大独立数(最大独立数 = 顶点数 - 最大匹配数/2)
- 各种排序算法的总结和比较