Java和JavaScript中使用Json方法大全.docx
- 文档编号:11388406
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:25
- 大小:21.70KB
Java和JavaScript中使用Json方法大全.docx
《Java和JavaScript中使用Json方法大全.docx》由会员分享,可在线阅读,更多相关《Java和JavaScript中使用Json方法大全.docx(25页珍藏版)》请在冰豆网上搜索。
Java和JavaScript中使用Json方法大全
Java和JavaScript中使用Json方法大全
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。
它基于ECMAScript的一个子集。
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。
这些特性使JSON成为理想的数据交换语言。
易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。
一、准备工作
json是个非常重要的数据结构,在web开发中应用十分广泛。
我觉得每个人都应该好好的去研究一下json的底层实现,分析一下json的相关内容,希望大家能有所收获。
首先给大家说一下使用json前的准备工作,需要准备下面的六个jar包:
这里我统一下好打包了,可以在这里来下
需要说明几点:
(1)json-lib最新版本可以从这个地方下载:
(2)ezmorph是一个简单的java类库,用于将一种bean转换成另外一种bean。
其动态bean的实现依赖于commons-beanutils包。
ezmorph可以在这个地方下载源码:
(3)commons-beanutils是操作JavaBean的类库,依赖于commons-collections。
可以从这里下载:
http:
//commons.apache.org/proper/commons-beanutils/download_beanutils.cgi
(4)commons-collections类库是各种集合类和集合工具类的封装。
可以从这里下载:
http:
//commons.apache.org/proper/commons-collections/download_collections.cgi
二、语法相关
JSON语法规则
JSON语法是JavaScript对象表示法语法的子集。
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON值
JSON值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true或false)
数组(在方括号中)
对象(在花括号中)
null
JSON有两种表示结构
对象和数组。
对象结构以”{”大括号开始,以”}”大括号结束。
中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:
”分隔,语法结构如代码。
[javascript]viewplaincopy
{
key1:
value1,
key2:
value2,
...
}
如
[html]viewplaincopy
{"department":
"产品研发","name":
"小王","age":
23}
其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组
数组结构以”[”开始,”]”结束。
中间由0或多个以”,”分隔的值列表组成,语法结构如代码。
[html]viewplaincopy
[
{
key1:
value1,
key2:
value2
},
{
key3:
value3,
key4:
value4
}
]
如:
[html]viewplaincopy
[{"department":
"产品研发","name":
"小王","age":
23},{"department":
"产品研发","name":
"小王","age":
23}]
三、Java中使用Json基本使用方法
工程免费下载
Jar包我也上传了,在这里
整个工程目录如下:
Employer.java如下
[java]viewplaincopy
packagecom.mucfc.json;
importnet.sf.json.JSONString;
publicclassEmployer{
privateStringname;
privateIntegerage;
privateStringdepartment;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicIntegergetAge(){
returnage;
}
publicvoidsetAge(Integerage){
this.age=age;
}
publicStringgetDepartment(){
returndepartment;
}
publicvoidsetDepartment(Stringdepartment){
this.department=department;
}
@Override
publicStringtoString(){
return"Employer[name="+name+",age="+age+",department="
+department+"]";
}
/*@Override要调用这个方法请implementsJSONString
publicStringtoJSONString(){
return"{\"name\":
\""+name+"\",\"department\":
\""+department+"\"}";
}*/
}
JsonTest.java全部代码如下:
[java]viewplaincopy
packagecom.mucfc.json;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importnet.sf.json.JSONArray;
importnet.sf.json.JSONObject;
importnet.sf.json.JsonConfig;
importnet.sf.json.util.PropertyFilter;
/**
*Json使用方法总结
*@authorlinbingwen(博客:
*@since2015.7.3
*/
publicclassJsonTest{
publicstaticvoidmain(Stringargs[]){
beanToJson();
beanToJson1();
beanToJson2();
arrayToJson();
listToJson();
mapToJson();
}
/**
*bean对象转json
*@returnvoid
*/
publicstaticvoidbeanToJson(){
Employeremployer=newEmployer();
employer.setName("小王");
employer.setAge(23);
employer.setDepartment("产品研发");
JSONObjectjson=JSONObject.fromObject(employer);
System.out.println("-----------------------------------------beanToJson()开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------beanToJson()结束------------------------------------------------");
}
/**
*bean对象转json,带过滤器
*@returnvoid
*/
publicstaticvoidbeanToJson1(){
Employeremployer=newEmployer();
employer.setName("小王");
employer.setAge(23);
employer.setDepartment("产品研发");
JsonConfigjsonConfig=newJsonConfig();
jsonConfig.setExcludes(newString[]
{"age"});
JSONObjectjson=JSONObject.fromObject(employer,jsonConfig);
System.out.println("-----------------------------------------beanToJson1()带过滤器开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------beanToJson1()带过滤器结束------------------------------------------------");
}
/**
*bean对象转json,带过滤器
*@returnvoid
*/
publicstaticvoidbeanToJson2(){
Employeremployer=newEmployer();
employer.setName("小王");
employer.setAge(23);
employer.setDepartment("产品研发");
JsonConfigjsonConfig=newJsonConfig();
jsonConfig.setJsonPropertyFilter(newPropertyFilter(){
publicbooleanapply(Objectsource,Stringname,Objectvalue)
{
returnsourceinstanceofEmployer&&name.equals("age");
}
});
JSONObjectjson=JSONObject.fromObject(employer,jsonConfig);
System.out.println("-----------------------------------------beanToJson2()带过滤器开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------beanToJson2()带过滤器结束------------------------------------------------");
}
/**
*array对象转json
*@returnvoid
*/
publicstaticvoidarrayToJson(){
Employeremployer1=newEmployer();
employer1.setName("小王");
employer1.setAge(23);
employer1.setDepartment("产品研发");
Employeremployer2=newEmployer();
employer2.setName("小王");
employer2.setAge(23);
employer2.setDepartment("产品研发");
Employer[]employers=newEmployer[]{employer1,employer2};
JSONArrayjson=JSONArray.fromObject(employers);
System.out.println("-----------------------------------------arrayToJson()开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------arrayToJson()结束------------------------------------------------");
}
/**
*list对象转json
*@returnvoid
*/
publicstaticvoidlistToJson(){
List
list.add("first");
list.add("second");
JSONArrayjson=JSONArray.fromObject(list);
System.out.println("-----------------------------------------listToJson()开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------listToJson()结束------------------------------------------------");
}
/**
*map对象转json
*@returnvoid
*/
publicstaticvoidmapToJson(){
Map
map.put("name","json");
map.put("bool",Boolean.TRUE);
map.put("int",newInteger
(1));
map.put("arr",newString[]{"a","b"});
map.put("func","function(i){returnthis.arr[i];}");
JSONObjectjson=JSONObject.fromObject(map);
System.out.println("-----------------------------------------mapToJson()开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------mapToJson()结束------------------------------------------------");
}
}
下面分别对各个部分来进行说明
1.Bean转换成json代码
[java]viewplaincopy
/**
*bean对象转json
*@returnvoid
*/
publicstaticvoidbeanToJson(){
Employeremployer=newEmployer();
employer.setName("小王");
employer.setAge(23);
employer.setDepartment("产品研发");
JSONObjectjson=JSONObject.fromObject(employer);
System.out.println("-----------------------------------------beanToJson()开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------beanToJson()结束------------------------------------------------");
}
运行结果如下:
2.数组转换成json代码
[java]viewplaincopy
/**
*array对象转json
*@returnvoid
*/
publicstaticvoidarrayToJson(){
Employeremployer1=newEmployer();
employer1.setName("小王");
employer1.setAge(23);
employer1.setDepartment("产品研发");
Employeremployer2=newEmployer();
employer2.setName("小王");
employer2.setAge(23);
employer2.setDepartment("产品研发");
Employer[]employers=newEmployer[]{employer1,employer2};
JSONArrayjson=JSONArray.fromObject(employers);
System.out.println("-----------------------------------------arrayToJson()开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------arrayToJson()结束------------------------------------------------");
}
运行结果如下:
3.List集合转换成json方法
[java]viewplaincopy
/**
*list对象转json
*@returnvoid
*/
publicstaticvoidlistToJson(){
List
list.add("first");
list.add("second");
JSONArrayjson=JSONArray.fromObject(list);
System.out.println("-----------------------------------------listToJson()开始------------------------------------------------");
System.out.println(json.toString());
System.out.println("-----------------------------------------listToJson()结束------------------------------------------------");
}
运行结果如下:
4.Map集合转换成json方法
[java]viewplaincopy
/**
*map对象转json
*@returnvoid
*/
publicstaticvoidmapToJson(){
Map
map.put("name","json");
map.put("bool",Boolean.TRUE);
map.put("int",newInteger
(1));
map.put("arr",newString[]{"a","b"});
map.put("func","function(i){returnthis.arr[i];}");
JSONObjectjson=JSONObject.fromObject(map);
System.out.pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java JavaScript 使用 Json 方法 大全