artTemplate--使用artTemplate时,由于json对象属性有数字命名格式 导致调用报错 syntax error
案例
今天在使用artTemplate做开发时,遇到一个比较奇葩的问题,就是使用json对象去获取值得时候,报如下错误:
Template Error
<temp>
function anonymous($data,$filename) {'use strict';var $utils=this,$helpers=$utils.$helpers,$escape=$utils.$escape,crediteaseReportData=$data.crediteaseReportData,$each=$utils.$each,riskItem=$data.riskItem,$index=$data.$index,loanRecord=$data.loanRecord,$out='';$out+='<div class="contentWrap splitHeader">\n    <a href="#" class="buttonActive" data-toggle="back" style="float: right;margin-right: 20px;"><span><<返回</span></a>\n\n    <h1>宜信致诚数据详情</h1>\n</div>\n\n\n<table >\n    <tbody>\n    <tr>\n        <th style="border: 1px solid #ddd;background: #f5f5f5;padding: 8px;width: 111px;border-top: 1px solid #ddd;vertical-align: top;">致诚分</th>\n        <td style="style="margin-bottom: 1px"">\n        <table class="table table-bordered" style="margin-bottom: 0px">\n            <tbody>\n            <tr>\n                <th style="border: 1px solid #ddd; vertical-align: top;  border-top: 1px solid #ddd;display: table-cell;background: #f5f5f5;padding: 8px;">信用评分</th>\n                <td style="border: 1px solid #ddd;padding: 8px;  line-height: 1.42857143;  vertical-align: top;  border-top: 1px solid #ddd;width: 781px;">\n                    ';
$out+=$escape(crediteaseReportData.creditScore.result.creditScore);
$out+=' (分值范围300~850)</td>\n            </tr>\n            <tr>\n                <th style="border: 1px solid #ddd;  vertical-align: top;  border-top: 1px solid #ddd;display: table-cell;background: #f5f5f5;padding: 8px;">违约概率</th>\n                <td style="border: 1px solid #ddd;padding: 8px;  line-height: 1.42857143;  vertical-align: top;  border-top: 1px solid #ddd;width: 781px;">\n                    ';
$out+=$escape(crediteaseReportData.creditScore.result.rate);
$out+='</td>\n            </tr>\n\n            </tbody>\n        </table>\n        </td>\n    </tr>\n\n    <tr>\n        <th style="border: 1px solid #ddd;background: #f5f5f5;padding: 8px;width: 111px;border-top: 1px solid #ddd;vertical-align: top;">风险名单对比结果</th>\n        <td style="margin-bottom: 1px">\n            <table class="table table-bordered" style="margin-bottom: 0px">\n                <tbody>\n                <tr>\n                    <th style="border: 1px solid #ddd;background: #f5f5f5;width: 218px;padding: 8px;">命中项</th>\n                    <th style="border: 1px solid #ddd;background: #f5f5f5;width: 218px;padding: 8px;">命中内容</th>\n                    <th style="border: 1px solid #ddd;background: #f5f5f5;width: 218px;padding: 8px;">风险类别</th>\n                    <th style="border: 1px solid #ddd;background: #f5f5f5;width: 218px;padding: 8px;">风险发生时间(最近)</th>\n                </tr>\n                ';
$each(crediteaseReportData.blackList.result.riskItems,function(riskItem,$index){
$out+='\n                <tr>\n                    <td style="border: 1px solid #ddd; width: 218px;  padding: 8px;">';
$out+=$escape(riskItem.riskItemType);
$out+='</td>\n                    <td style="border: 1px solid #ddd; width: 218px;  padding: 8px;">';
$out+=$escape(riskItem.riskItemValue);
$out+='</td>\n                    <td style="border: 1px solid #ddd; width: 218px;  padding: 8px;">';
$out+=$escape(riskItem.riskType);
$out+='</td>\n                    <td style="border: 1px solid #ddd; width: 218px;  padding: 8px;">';
$out+=$escape(riskItem.riskTime);
$out+='</td>\n                </tr>\n                ';
});
$out+='\n                </tbody>\n\n            </table>\n        </td>\n    </tr>\n\n <tr>\n                    <th style="border: 1px solid #ddd;background: #f5f5f5;padding: 8px;width: 111px;border-top: 1px solid #ddd;vertical-align: top;">借款情况</th>\n                    <td style="margin-bottom: 1px">\n                        <table class="table table-bordered" style="margin-bottom: 0px">\n                            <tbody>\n                            <tr>\n                                <th style="border: 1px solid #ddd;background: #f5f5f5;width: 218px;padding: 8px;">借款时间</th>\n                                <th style="border: 1px solid #ddd;background: #f5f5f5;width: 218px;padding: 8px;">借款金额</th>\n                                <th style="border: 1px solid #ddd;background: #f5f5f5;width: 218px;padding: 8px;">审批结果</th>\n                                <th style="border: 1px solid #ddd;background: #f5f5f5;width: 218px;padding: 8px;">目前状态</th>\n                            </tr>\n                            ';
$each(crediteaseReportData.queryLoan.result.loanRecords,function(loanRecord,$index){
$out+='\n                            <tr>\n                                <td style="border: 1px solid #ddd; width: 218px;  padding: 8px;">';
$out+=$escape(loanRecord.loanTime);
$out+='</td>\n                                <td style="border: 1px solid #ddd; width: 218px;  padding: 8px;">';
$out+=$escape(loanRecord.amount);
$out+='</td>\n                                <td style="border: 1px solid #ddd; width: 218px;  padding: 8px;">';
$out+=$escape(loanRecord.approveStatus);
$out+='</td>\n                                <td style="border: 1px solid #ddd; width: 218px;  padding: 8px;">';
$out+=$escape(loanRecord.currentStatus);
$out+='</td>\n                            </tr>\n                            ';
});
$out+='\n                            <tr><td>逾期统计:共借款逾期';
$out+=$escape(crediteaseReportData.queryLoan.result.overdue['overdueTimes']);
$out+='次,90天以上逾期  ';
$out+=$escape(crediteaseReportData.queryLoan.result.overdue.90overdueTimes]);
$out+=' 次,180天以上逾期  ';
$out+=$escape(crediteaseReportData.queryLoan.result.overdue['180overdueTimes']);
$out+=' 次</td></tr>\n                            </tbody>\n                        </table>\n                    </td>\n                </tr>\n\n\n\n\n    </tbody>\n</table>';
return new String($out);}
<filename>
yx_creditease_detail
<name>
Syntax Error后台返回的json字符串格式如下:
 "queryLoan": {
        "crediteaseId": 1,
        "data": "{"overdue":{"180overdueTimes":0,"overdueTimes":0,"90overdueTimes":0},"loanRecords":[{"amount":"(20000,50000]","approveStatus":"未通过","approveStatusCode":"203","currentStatus":"---","currentStatusCode":"---","loanTime":"2015"}]}",
        "idCard": "510226196602284031",
        "queryType": "queryLoan",
        "querytime": 1467870500000,
        "responseCode": "000000",
        "responseContent": "成功",
        "result": {
            "loanRecords": [
                {
                    "amount": "(20000,50000]",
                    "approveStatus": "未通过",
                    "approveStatusCode": "203",
                    "currentStatus": "---",
                    "currentStatusCode": "---",
                    "loanTime": "2015"
                }
            ],
            "overdue": {
                "180overdueTimes": 0,
                "90overdueTimes": 0,
                "overdueTimes": 0
            }
        }具体是因为添加了如下代码:
<tr><td>逾期统计:共借款逾期{{crediteaseReportData.queryLoan.result.overdue['overdueTimes']}}次,90天以上逾期  {{crediteaseReportData.queryLoan.result.overdue.90overdueTimes}} 次,180天以上逾期  {{crediteaseReportData.queryLoan.result.overdue['180overdueTimes']}} 次</td></tr>注意加入如下代码时,是没有任何异常出现的:
{{crediteaseReportData.queryLoan.result.overdue.overdueTimes}}但是加入下面代码后,马上报语法错误:
{{crediteaseReportData.queryLoan.result.overdue.90overdueTimes}}解决方案
出现上图原因是因为json属性的命名格式有数字,导致不能直接使用对象"."属性的方式
crediteaseReportData.queryLoan.result.overdue.90overdueTimes只需要修改为如下类似数组方式即可:
crediteaseReportData.queryLoan.result.overdue['90overdueTimes']artTemplate--使用artTemplate时,由于json对象属性有数字命名格式 导致调用报错 syntax error的更多相关文章
- sql中有一些保留字,当你的字段名是它的保留字时,这个时候sql语句的字段不加``就会报错
		sql中有一些保留字,当你的字段名是它的保留字时,这个时候sql语句的字段不加``就会报错 
- js对象转换为json格式时,js对象属性中有值为null和undefined注意事项
		当属性值为null时: 当属性值为undefined时: 只有当属性值为未定义时, js对象转换成json格式时会忽略该属性. 
- js JSON对象属性
		json对象是是一种用于原生json分析的对象,无法对其进行构造函数调用,用java术语 来说,它相当于能够直接使用类方法的工具类JSON对象的属性parse(text[,reviver]);对参数t ... 
- C# 反射(GetType)  获取动态Json对象属性值的方法
		之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊! 然后今天我再上网找了找,被我找到了,跟大家分享一下. 其实原理并不复 ... 
- php数组转json对象并保留数字索引
		本文要解决的问题是php不带索引的数组转换为json对象(而非默认的json数组) php中数组转json使用的方法是系统自带的:json_encode php中数组转json的规则是:当没有指定索引 ... 
- 报错:Error starting Jetty. JSON Metrics may not be available.java.net.BindException:地址已在使用
		报错背景: 刚在CDH中集成Flume插件,启动报错 报错现象: Error starting Jetty. JSON Metrics may not be available. java.net.B ... 
- Json解析报错: Error is : Unescaped control character...的解决方法
		在利用json-framework来实现json解析的过程时,会出现"-JSONValue Failed. Error is : Unescaped control character&qu ... 
- Java处理JPEG图片时,需要导入com.sun.image.codec.jpeg.JPEGImageEn,报错处理
		Java处理JPEG图片时,需要导入com.sun.image.codec.jpeg.JPEGImageEn,会报错,不能使用相应的方法. 原因:java访问限制级api的时候,默认的eclipse设 ... 
- Error--解决使用Application Loader提交ipa包审核时的报错:ERROR ITMS-90168: "The binary you uploaded was invalid."
		在提交iTunes Connect审核时,使用Application Loader提交ipa包时报错:ERROR ITMS-90168: "The binary you uploaded w ... 
随机推荐
- C# 字符串与二进制的相互转换
			/// <summary> /// 将字符串转成二进制 /// </summary> /// <param name="s"></para ... 
- 如何在Linux上创建,列出和删除Docker容器
			本篇文章介绍的内容是关于在Linux机器上创建,列出和删除docker容器,下面我们来看具体的内容. 1.启动Docker容器 使用下面的命令启动新的Docker容器.这将启动一个新的容器,并为你提供 ... 
- 20191024-3 互评Alpha阶段作品
			此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9860 本组对构建之法组评价的博客链接:https://www.cnblog ... 
- cocos2dx Quaternion 四元数(1/2)
			这篇文章只是我学完四元数之后的一些理解,其实是对别人理解的理解,有些地方我理解但是没有写下来,如果真的想深入的学习四元数,建议从学习复数开始. 这个知识点需要几何想象的天赋和学习的耐心,缺一不可,慢慢 ... 
- 关于Mac VMFusion Centos7虚拟机网络的配置
			1.环境配置: 创建完快照后启动虚拟机,使用root用户和root密码登录系统 1.1 停止防火墙 #停止防火墙 [root@localhost ~]#systemctl stop firewalld ... 
- 使用宝塔搭建nextcloud的过程(搭建、优化、问题)
			宝塔部署教程 参考网址: 使用NextCloud来搭建我们的私有网盘.并结合Redis优化性能(宝塔) https://www.moerats.com/archives/175/ 宝塔面板下nextc ... 
- 《吊打面试官》系列-ArrayList
			你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和 ... 
- nginx错误: [error] OpenEvent("Global\ngx_reload_10444") failed (2: The system cannot find the file specified)
			执行nginx -s reload命令: nginx: [error] OpenEvent("Global\ngx_reload_10444") failed (2: The sy ... 
- Collection 的子类  List
			List集合的一些使用方法: 一. 声明集合: List<String> list = new ArrayList<String>(); 二.往集合里面添加元素 list.ad ... 
- JVM之JVM的体系结构
			一.JDK的组成 JDK:JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品.JDK中包含JRE(在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin ... 
