json-lib.jar使用方法详解(动态从后台获取Javascript函数)
来源:互联网 发布:憨豆特工影评知乎 编辑:程序博客网 时间:2024/05/29 19:32
以下是原创作品,转载请标明出处http://lvjava.com/?p=390
json-lib是一个很方便的处理Java中JSON数据与普通数据转换的包,下载地址为:http://json-lib.sourceforge.net/
该包的运行依赖于下面的包:
jakarta commons-lang 2.5
jakarta commons-beanutils 1.8.0
jakarta commons-collections 3.2.1
jakarta commons-logging 1.1.1
ezmorph 1.0.6
JSONObject 将值对作为对象的方式管理
JSONArray 对应值对数组
JSONFunction 用来处理Javascript方法
直接上示例代码:
后台端代码(基于Spring)
@Controller
@RequestMapping
(
"/json"
)
public
class
JSONController {
@ResponseBody
@RequestMapping
(method = RequestMethod.GET)
public
String getJSONTest() {
JSONObject obj =
new
JSONObject();
obj.put(
"jsonKey"
,
"jsonValue"
);
JSONArray array =
new
JSONArray();
JSONObject obj1 =
new
JSONObject();
obj1.put(
"arrayValue"
,
"Array Value 1"
);
array.add(obj1);
JSONObject obj2 =
new
JSONObject();
obj2.put(
"arrayValue"
,
"Array Value 2"
);
array.add(obj2);
obj.put(
"jsonArray"
, array);
obj.put(
"jsonFunction"
,
new
JSONFunction(
"alert('JSON Functin Test');"
));
obj.put(
"jsonFunctionWithParams"
,
new
JSONFunction(
new
String[] {
"param1"
,
"param2"
},
"alert(param1 + ' + ' + param2); return param1 + ' * ' + param2;"
));
return
obj.toString();
}
public
static
void
main(String[] args) {
JSONObject obj =
new
JSONObject();
obj.put(
"jsonKey"
,
"jsonValue"
);
obj.put(
"jsonFunction"
,
new
JSONFunction(
"alert('JSON Functin Test');"
));
System.out.println(obj.toString());
}
}
返回给前台的数据如下:
{“jsonFunctionWithParams”:function(param1,param2){ alert(param1 + ‘ + ‘ + param2); return param1 + ‘ * ‘ + param2; },”jsonFunction”:function(){ alert(‘JSON Functin Test’); },”jsonKey”:”jsonValue”,”jsonArray”:[{"arrayValue":"Array Value 1"},{"arrayValue":"Array Value 2"}]}
前台代码(基于JQuery)
$(document).ready(
function
(){
$.get(
'json.do'
,
function
(data) {
var
jsonObj = eval(
'('
+ data +
')'
);
alert(jsonObj.jsonKey);
alert(jsonObj.jsonArray.length);
for
(
var
i = 0; i < jsonObj.jsonArray.length; i++) {
alert(jsonObj.jsonArray[i].arrayValue);
}
jsonObj.jsonFunction();
setTimeout(jsonObj.jsonFunction, 1000);
jsonObj.jsonFunctionWithParams(
'param3'
,
'param4'
);
alert(jsonObj.jsonFunctionWithParams(
'param3'
,
'param4'
));
});
});
重点解释一下JsonFunction,该对象有两个构造函数:
JSONFunction(String text)
Constructs a JSONFunction with no parameters.
JSONFunction(String[] params, String text)
Constructs a JSONFunction with parameters.
参数text为函数的主体部分,即一个函数大括号内部的部分(不包括大括号)。
当JSON数据中不包含JSONFunction的时候,可以使用JQuery提供的简易方法来处理:
$(document).ready(
function
() {
$.getJSON(
'json.do'
,
function
(data) {
alert(data.jsonKey);
});
});
但是当JSON数据中有JSONFunction对应的数据存在时,JQuery不能正确解析。alert函数并不会被执行。
- json-lib.jar使用方法详解(动态从后台获取Javascript函数)
- 怎么从后台同步获取json数据
- jquery从后台获取json数据
- JSON从后台获取数据注意事项
- extjs grid 从json 获取动态列
- 从ad_type.json文件获取动态option
- json-lib 相关jar包
- FullCalendar从后台获取查询后的JSON数据
- jQuery结合highcharts从后台获取json实时刷新图表
- ajax 从后台获取json格式 提示 parseerror
- vue渲染从后台获取的json数据
- JSON转换Object(json-lib.jar)
- FusionCharts动态获取后台json数据 页面显示
- Missing artifact net.sf.json-lib:json-lib:jar:2.4
- 动态添加下拉列表框,并从后台获取值
- js 实现对Select动态赋值 C#从后台获取
- Echarts 动态从后台获取数据进行图表的展示
- angularjs 动态从后台获取下拉框的值
- Jni 学习之NIO操作
- CODE FIRST /DataFirst [Key] 过滤器
- 简易的字符串内存池实现
- JAVA当中变量什么时候需要初始化?
- char *s1 = "***"和char s2[]="***"的区别
- json-lib.jar使用方法详解(动态从后台获取Javascript函数)
- 如何在命令行模式下查看Python帮助文档---dir、help、__doc__
- <读书笔记>Windows内核安全 —— 第四章 键盘的过滤
- 有点意思的C/C++问题及解答:6-10
- SurF特征点检测
- 选择排序
- MySql日期和时间函数(1)
- Android自学笔记 第四天(下)
- 【OpenCV】图像几何变换:旋转,缩放,斜切