nashorn中js数组转为对象的问题
2024-08-27 23:02:44
背景
在项目中,使用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),具体如下:
上述方法可以解决数组转为对象,亲测有效
最新文章
- mvc架构
- IDDD 实现领域驱动设计-由贫血导致的失忆症
- Hibernate框架简述 内部资料 请勿转载 谢谢合作
- activiti和SSH项目做整合
- 你真的熟悉background吗?
- (四)play之yabe项目【页面】
- 边工作边刷题:70天一遍leetcode: day 81
- 把txt文件中的json字符串写到plist文件中
- xps文档打印后winform界面文字丢失
- Android解析Json速度最快的库:json-smart
- 酷狗、QQ、天天动听——手机音乐播放器竞品对比
- linux_解压缩详解
- axis2设置soap1.1或soap1.2协议
- python hello 的三种方法
- 一个自己实现的js表单验证框架。
- 【金色】种瓜得瓜,种豆得豆 Gym - 102072H (线段树)
- Linux环境下解压rar文件
- maven项目工程目录约定
- php调试利器之phpdbg
- delphi手动创建dataset并插入值