背景

在项目中,使用jdk中的nashorn执行javascript脚本,例如如下脚本片段:

    let ctx = session.ctx;
ctx.confirm = {
//车牌划分后的数组
segments:[],
//正在确认第几段车牌
index:0
};
let provinceCity = {
value:ctx.province + ctx.citycode,
begin:0,
end:2
};
ctx.confirm.segments.push(provinceCity);
ctx.reply = '是' + provinceCity.value + '开头'; if(ctx.number){
let number = {
value:ctx.number,
begin:2,
end:2 + ctx.number.length
};
ctx.confirm.segments.push(number);
ctx.segmentSize = 2;
}else{
ctx.segmentSize = 1;
}

通过执行结果可以发现,segments变成了索引值为key的一个对象,这显然不是我们想要的结果:

{
"valid": false,
"confirm": {
"index": 0,
"segments": {
"0": {
"end": 2,
"value": "皖a",
"begin": 0
},
"1": {
"end": 5,
"value": "123",
"begin": 2
}
}
}
}

解决办法

通过google发现,这是nashorn中的算一个Bug,很多人都提出了相同的问题(https://github.com/intuit/karate/issues/225),其中有人给出了一个解决方案,就是在javascript脚本返回时,调用JSON.stringify(result),具体如下:



上述方法可以解决数组转为对象,亲测有效

最新文章

  1. mvc架构
  2. IDDD 实现领域驱动设计-由贫血导致的失忆症
  3. Hibernate框架简述 内部资料 请勿转载 谢谢合作
  4. activiti和SSH项目做整合
  5. 你真的熟悉background吗?
  6. (四)play之yabe项目【页面】
  7. 边工作边刷题:70天一遍leetcode: day 81
  8. 把txt文件中的json字符串写到plist文件中
  9. xps文档打印后winform界面文字丢失
  10. Android解析Json速度最快的库:json-smart
  11. 酷狗、QQ、天天动听——手机音乐播放器竞品对比
  12. linux_解压缩详解
  13. axis2设置soap1.1或soap1.2协议
  14. python hello 的三种方法
  15. 一个自己实现的js表单验证框架。
  16. 【金色】种瓜得瓜,种豆得豆 Gym - 102072H (线段树)
  17. Linux环境下解压rar文件
  18. maven项目工程目录约定
  19. php调试利器之phpdbg
  20. delphi手动创建dataset并插入值

热门文章

  1. 实用maven笔记四-打包&其他
  2. php的闭包函数use的使用
  3. leetcode.双指针.633平方数之和-Java
  4. pytest_参数化之3*3
  5. 路过--<全世界谁倾听你>
  6. sqlServer MERGE 对数据进行修改或插入自动视别 特别用于批量数据的插入或修改
  7. HTML事件处理程序---内联onclick事件
  8. Java工程师面试linux操作选择面试题大全
  9. Django过滤器之safe
  10. Java/sql找出oracle数据库有空格的列