json简介及在Java中的应用
2016-04-14 16:55
471 查看
JSON简介
JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式。其作用和xml有点类似,但是 比 XML 更小、更快,更易解析。JSON 解析器和 JSON 库支持许多不同的编程语言。
JSON 语法规则
JSON 对象在花括号中书写,对象可以包含多个名称/值对:如
•数据在名称/值对中(如name:”tom”)
•数据由逗号分隔
•花括号保存对象
•方括号保存数组
这里介绍一下JSON 值可以是:
•数字(整数或浮点数)
•字符串(在双引号中),如
•逻辑值(true 或 false)
•数组(在方括号中),如
可以像这样访问 json对象数组中的第一项:employees[0].lastName;
可以这样修改数据:employees[1].firstName=”Tom”
•对象(在花括号中)
•null
javaScript与json对象的互相转换
json对象转成js对象:
json转js字符串:eval(‘(’ + jsonstr + ‘)’); //可以将json字符串转换成json对象(包括数组和字符串!!!),注意需要在json字符外包裹一对小括号;
另外,因为 JSON 使用 JavaScript 语法,所以json数组对象和js数组对象用法类似,都可以直接jsonArr[index]这样使用;
js对象转成json对象:
stringify(jsobj):将对象解析成json字符串!如果对象是js数组,解析成的也是json字符串而非数组(所以不能用数组下标方法了);
json在java中的应用
首先介绍一些json在java中的常用类和方法,所需的jar包如下图
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/05/d63f70b028947bc4804f53c60ec947eb)
常用类:JSONObject(json对象),JSONArray(json数组对象);
常用方法:
JSONObject.fromObject(obj):将java对象转成json对象(返回JSONObject);
JSONObject.toBean(obj, Student.class):将json对象转成指定类型的对象(返回的是Object对象,需要强制类型转换);
JSONArray.fromObject(obj):将java数组对象转成json数组(返回JSONArray);
array.getJSONObject(i):json数组获取下标为i的对象(返回JSONObject 对象);
jsonArray.toArray():将json数组转换成相应java数组(返回Object[]);
jsonObj.put(name,value):JSONObject实例添加元素;
下面看具体的代码例子:
关于JSONObject对象的具体使用方法可以参考:http://www.cnblogs.com/hitwtx/articles/2468633.html
JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式。其作用和xml有点类似,但是 比 XML 更小、更快,更易解析。JSON 解析器和 JSON 库支持许多不同的编程语言。
JSON 语法规则
JSON 对象在花括号中书写,对象可以包含多个名称/值对:如
var jsonObj = { "firstName":"John" , "lastName":"Doe" }
•数据在名称/值对中(如name:”tom”)
•数据由逗号分隔
•花括号保存对象
•方括号保存数组
这里介绍一下JSON 值可以是:
•数字(整数或浮点数)
•字符串(在双引号中),如
{ "firstName":"John" , "lastName":"Doe" }
•逻辑值(true 或 false)
•数组(在方括号中),如
var employees = [{ "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" }]
可以像这样访问 json对象数组中的第一项:employees[0].lastName;
可以这样修改数据:employees[1].firstName=”Tom”
•对象(在花括号中)
•null
javaScript与json对象的互相转换
json对象转成js对象:
json转js字符串:eval(‘(’ + jsonstr + ‘)’); //可以将json字符串转换成json对象(包括数组和字符串!!!),注意需要在json字符外包裹一对小括号;
另外,因为 JSON 使用 JavaScript 语法,所以json数组对象和js数组对象用法类似,都可以直接jsonArr[index]这样使用;
js对象转成json对象:
stringify(jsobj):将对象解析成json字符串!如果对象是js数组,解析成的也是json字符串而非数组(所以不能用数组下标方法了);
json在java中的应用
首先介绍一些json在java中的常用类和方法,所需的jar包如下图
常用类:JSONObject(json对象),JSONArray(json数组对象);
常用方法:
JSONObject.fromObject(obj):将java对象转成json对象(返回JSONObject);
JSONObject.toBean(obj, Student.class):将json对象转成指定类型的对象(返回的是Object对象,需要强制类型转换);
JSONArray.fromObject(obj):将java数组对象转成json数组(返回JSONArray);
array.getJSONObject(i):json数组获取下标为i的对象(返回JSONObject 对象);
jsonArray.toArray():将json数组转换成相应java数组(返回Object[]);
jsonObj.put(name,value):JSONObject实例添加元素;
下面看具体的代码例子:
//json转成Object String json = "{id:'1001',name:'张三',age:22}"; Student stu = null; JSONObject obj = JSONObject.fromObject(json); stu = (Student)JSONObject.toBean(obj, Student.class); //从一个JSON数组得到一个java对象数组 String jsonStus = "[{id:1,name:'jack',age:20}, {id:2,name:'rose',age:20}, {id:3,name:'admin',age:20}]"; JSONArray array = JSONArray.fromObject(jsonStus); Student[] stu = new Student[array.size()]; for(int i = 0; i < array.size(); i++){ JSONObject jsonObject = array.getJSONObject(i); stu[i] = (Student)JSONObject.toBean(jsonObject, Student.class); } //java对象转换为json格式 JSONObject obj2=new JSONObject(); obj2.put("phone","123456"); obj2.put("zip","7890"); obj2.put("contact",obj2); //一般数组转换成JSON boolean[] boolArray = new boolean[]{true,false,true}; JSONArray jsonArray = JSONArray.fromObject( boolArray );
关于JSONObject对象的具体使用方法可以参考:http://www.cnblogs.com/hitwtx/articles/2468633.html
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享