JSON详解
来源:互联网 发布:色情网络 网站 大香蕉 编辑:程序博客网 时间:2024/06/02 19:41
JSON简介:
- JSON(全称JavaScript Object Notation)是一种轻量级的数据交换格式(比xml更轻巧)。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。
- JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包,同时,在表达相同的信息时,JSON比XML形成的文件更小、更便于机器解析。
一、JSON的构建规则:
(1) 对象:无序的“‘名称/值’对”集合。一个对象以“{”开始,以“}”结束。每个“名称”后跟一个“:”,“‘名称/值’对”之间使用“,”分隔。
(2) 数组:值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。其中,值(value)可以是双引号括起来的字符串(String)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。
var user = { id:1, name:"sandy", age:20, info: { tel: "6586894",cellphone: "15895459875"}, address: [ {city:"beijing",postcode:"454897"}, {city:"newyork",postcode:"555666"} ] }二、JSON的读取与修改
alert(user.name); alert(user.info.cellphone); alert(user.address[0].city); alert(user.address[0].postcode); user.name = "Tom"; user.address[0].city="shanghai"三、JSON解析
(1) 使用javasript提供的eval()可以对JSON快速解析成对象数组。
var obj = eval(response.responseText); Ext.Array.each(obj,function(o){ //遍历对象数组 alert(o.name+o.value); //(name/value) });
(2) 使用JSON-lib框架解析JSON。
1> 下载JSON-lib工具包及其相关依赖jar包
1. json-lib-2.4-jdk15-javadoc.jar
2. jakarta commons-lang 2.5
3. jakarta commons-beanutils 1.8.0
4. jakarta commons-collections 3.2.1
5. jakarta commons-logging 1.1.1
6. ezmorph 1.0.6
官方网址:http://json-lib.sourceforge.net/
2> JSONObject和JSONArray的应用
1. 直接创建JSON对象
JSONObject jsonObject = new JSONObject(); jsonObject.put("id",new Integer(200) jsonObject.put("name","Tom"); jsonObject.put("man",Boolean.TRUE); jsonObject.put("city",new String[]{"beijin","shanghai"}); //数组 jsonObject.put("func", "function(i){return this.city[i];}"); jsonObject.element("address", "福建省厦门市"); //直接在jsonObject后面追加属性元素输出结果:[“id”: 200, “name”:"Tom", “man”:True, “city”:[ “beijin”, “shanghai”], “func”:function(i){return this.city[i];}",'address':"福建省厦门市"]
JSONArray jsonArray = new JSONArray(); jsonArray.add(0, "this is a jsonArray value"); jsonArray.add(1, "another jsonArray value"); jsonObject.element("jsonArray", jsonArray); JSONArray array = jsonObject.getJSONArray("jsonArray"); //在jsonObject后添加一个JSONArray对象
输出结果:{"jsonArray":["this is a jsonArray value","another jsonArray value"]}
2. java对象与JSON字符串互转
User u = new User(); response.getWriter().write(JSONObject.fromObject(u).toString()); //java对象->JSON字符串 jsonObject = JSONObject.fromObject(json); User u = (User) JSONObject.toBean(jsonObject); //JSON字符串->java对象
3. 将java List集合与JSON字符串 互转
List<User> list = service.queryUser(); response.getWriter().write(JSONArray.fromObject(list).toString()); //list集合->JSON字符串 json = "[" + json + "]"; jsonArray = JSONArray.fromObject(json); List<User> list = JSONArray.toList(jsonArray); //JSON字符串->list集合
扩展阅读:http://www.json.org/
Json-lib在线API: http://json-lib.sourceforge.net/apidocs/jdk15/index.html
- JSON 详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- json 详解
- json详解
- JSON详解
- JSON详解
- JSON详解
- json详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- json详解
- Json详解
- Android_获取屏幕大小的两种方法
- Hibernate Blob和Clob
- mini6410 Linux--根文件系统的挂载过程分析
- s5pc110串口连接问题解决
- flex_Skin Class;
- JSON详解
- java流与文件操作
- android的安装
- 像素、英寸、厘米之间的换算关系
- hadoop 之HDFS
- 有没有想过你在电饭锅上可以上校内?
- Server.MapPath()
- ubuntu eclipse 中文乱码
- 地址收藏