eval解析json字符串
场景:在springMVC,手动拼接的list,转成本json字符串后,传到前台,
解决:需要解析成json对象,获取对象的属性,动态生成table。
首先,以下是后台准备好的list,list中有两条记录,每条记录有五个属性:
String json;
json = JSONArray.fromObject(list).toString();//什么需要转成json字符串,就将对应的list放进去进行转换
map.put("balanceList", json);
return map;
然后,前台通过Ajax进行接收:
/* 根据查询条件动态创建table */
function test(){
//清除div中之前的table
$("#table_div").empty();
var partVersion = '0';
var containerIds = '0';
$.ajax({ //ajax取得相应的值
type: "POST",
url: "balance/banlanceList.do",
data: {'partVersion':partVersion,'containerIds':containerIds},
success:function(data){
var obj=eval("("+data.balanceList+")");//将后台传过来的list进行解析
var j=0;
for(j=0;j<obj.length;j++){
var balanceObj = obj[j];
var table= $("<table />").addClass("table"+j).appendTo($("#table_div"));//list中有多少条记录,循环创建多少个table
//每一条记录中有五个属性,创建完table后,继续创建五个行
var row1 = $("<tr/>").appendTo(".table"+j);
var row2 = $("<tr/>").appendTo(".table"+j);
var row3 = $("<tr/>").appendTo(".table"+j);
var row4 = $("<tr/>").appendTo(".table"+j);
var row5 = $("<tr/>").appendTo(".table"+j);
//每一行的列是不固定的,通过遍历自动生成列
for(var i=0;i<balanceObj.length;i++){
var o1=balanceObj[i].week;
var o2=balanceObj[i].stock;
var o3=balanceObj[i].demand;
if(i==0){
var td=$("<td />").css({ "border-right": "1px solid rgb(217,217,217)"});
row1.append(td);
td.text("编号"+balanceObj[i].containerId);
}else{
var td=$("<td />");
row1.append(td);
var week = o1.substring(4,6) + "w";
td.text(week);
}
if(i==0){
var td=$("<td />").css({ "border-right": "1px solid rgb(217,217,217)"});
row2.append(td);
td.text("计划");
}else{
var td=$("<td />");
row2.append(td);
td.text(0);
}
if(i==0){
var td=$("<td />").css({ "border-right": "1px solid rgb(217,217,217)"});
row3.append(td);
td.text("库存量");
}else{
var td=$("<td />");
row3.append(td);
td.text(o2);
}
if(i==0){
var td=$("<td />").css({ "border-right": "1px solid rgb(217,217,217)"});
row4.append(td);
td.text("需求量");
}else{
var td=$("<td />");
row4.append(td);
td.text(o3);
}
if(i==0){
var td=$("<td />").css({ "border-right": "1px solid rgb(217,217,217)"});
row5.a ppend(td);
td.text("库存-需求");
}else{
var td=$("<td />");
row5.append(td);
td.text(o2-o3);
} } }
tableRenderer();
} });
}
//对table进行渲染,对第一列添加背景色,对选中添加背景色
function tableRenderer(){
$(".baobiao_tab table tbody tr td:last-child").css('border-right','none');
$(".baobiao_tab table tbody tr td:first-child").css('background','rgb(238,238,238)');
$(".baobiao_tab table:last-child tr:last-child td").css('border-bottom','none');
$(".baobiao_tab table:first-child").css('border-top','none'); $(".baobiao_tab table tbody tr").click(function(){
$(".baobiao_tab table tbody tr").css("background","rgb(255,255,255)");
$(this).css("background","rgb(223,232,246)");
})
} ) 页面div用于显示table
<div class="baobiao_tab" id="table_div">
</div>
小结:(1)List集合转换成JSON对象
用net.sf.json包下JSONArray的静态方法:fromObject(list) 这是网上大多是都是直接用此方法快捷转换JSON,但是对于Hibernate级联操作关联的对象,这个方法就会报错,如果将映射文件中的级联配置去掉就行了。
解决方法就是:JSONArray subMsgs = JSONArray.fromObject(object, config);
//提供了一个过滤作用,如果遇到关联的对象时他会自动过滤掉,不去执行关联关联所关联的对象
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object arg0, String arg1, Object arg2) {
if (arg1.equals("article") ||arg1.equals("fans")) {
return true;
} else {
return false;
}
}
});
(2)eval在JS中将JSON的字符串解析成JSON数据格式
var dataObj=eval("("+data+")");//转换为json对象
(3)Jquery 操作dom
第一次写,表示挺好用的,一些常用的方法,appendTo,remove,empty,attr,css等等,需要多加练习
eval解析json字符串的更多相关文章
- JS的全局函数eval解析JSON字符串
JavaScript eval() 函数 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描述 string 必需. ...
- eval解析JSON字符串的一个小问题
之前写过一篇 关于 JSON 的介绍文章,里面谈到了 JSON 的解析.我们都知道,高级浏览器可以用 JSON.parse() API 将一个 JSON 字符串解析成 JSON 数据,稍微欠妥点的做法 ...
- js中eval详解,用Js的eval解析JSON中的注意点
先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要 ...
- 解析Json字符串的三种方法
在很多时候,我们的需要将类似 json 格式的字符串数据转为json, 下面将介绍日常中使用的三种解析json字符串的方法 1.首先,我们先看一下什么是 json 格式字符串数据,很简单,就是 jso ...
- jquery : eval() 解析json的注意
jquery eval解析JSON中的注意点介绍 来在:http://www.jb51.net/article/40842.htm 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: ...
- 使用 dynamic 标记解析JSON字符串 JDynamic :支持Json反序列化为Dynamic对象
使用 dynamic 标记解析JSON字符串 http://www.cnblogs.com/taotaodetuer/p/4171327.html 1 string jsonStr = " ...
- json解析json字符串时候,数组必须对应jsonObjectArray,不能对应JsonObject。否则会解析错误。
json第三方解析json字符串时候,json数组必须对应jsonObjectArray,不能对应JsonObject.->只要是[]开头的都是json数组字符串,就要用jsonArray解析 ...
- C#解析JSON字符串总结
JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串. 操作JSON通常有以下几种方式: 1. 原始方式:按照JSON字符串自己来解析. 2. 通用方式[★★★★★]: ...
- Json转model对象,model转json,解析json字符串
GitHub链接: https://github.com/mozhenhau/D3Json D3Json 通过swift的反射特性,把json数据转换为model对象,本类最主要是解决了其他一般jso ...
随机推荐
- sql_auoload_regiester() 解释(转载)
在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: 运行index.P ...
- WordPress导航菜单函数
导航菜单是每一个WordPress主题必须的元素,如果你要制作一个WordPress主题,那就必须熟悉WordPress导航菜单注册函数 register_nav_menus() 和 导航菜单调用函数 ...
- bug、兼容性、适配问题
1.input type=“number” 在火狐上限制长度会有问题: 1.maxlength 不管用 2.正则或js匹配限制长度后,给这个input赋值时候末尾三位(有可能是几位,我遇到的是三位 ...
- Spring Boot 的彩色日志
springboot的彩色日志灰常漂亮, 看起来也很舒服. 但是自定义的日志就是一纯白色的, 丑到不行. 所以就copy他的彩色日志来养眼: <!-- 彩色日志 --> <!-- 彩 ...
- linux环境下编译C++ 程序
GCC(GNU Compiler Collection)是Linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活.它可以通过不同的前端模块来支持各种语言,如:Java.Fortran.P ...
- mysql保留两位小数
--这个是保留整数位 SELECT CONVERT(4545.1366,DECIMAL); --这个是保留两位小数 ,)); --这个是截取两位,并不会四舍五入保留两位小数 );
- pthread和semaphore的简单应用以及四个典型的多线程问题
pthread和semaphore的简单应用以及四个典型的多线程问题 pthread常用函数简单介绍 创建线程 int pthread_create(pthread_t * thread, pt ...
- JAVA 导出 Excel, 将Excel下载到本地
昨天说了如何将数据导出成 excel 的两种方式,今天完善一下将 java 导出(文件在服务器)并下载到本地 1. 触发导出 ajax 代码 $.ajax({ type: "POST&quo ...
- c# 键值对照表
虚拟键值表 虚拟键 十六进制值 十进制值 相应键盘或鼠标键 VK_LBUTTON 1 1 鼠标左键 VK_RBUTTON 2 2 鼠标右键 VK_CANCEL 3 3 Ctrl-Break键 VK_M ...
- nginx重启报错:nginx: [error] invalid PID number "" in "/run/nginx.pid"
问题描述:执行 nginx -t 是OK的,然而在执行 nginx -s reload 的时候报错 nginx: [error] invalid PID number “” in “/run/ngin ...