如何解决在发送到我的 JAVA 程序之前,我将 JSON 字符串化多少次
我正在调用一个 Java 程序,该程序是我使用 Google OR Tools 编写的用于解决 VRP 的问题,并且我正在使用 child-process 从我的 Node JS 文件中调用该程序。目前我不得不将我的数据字符串化三次以获得预期的输出,昨天我只需要在 Node 和 Java 中使用相同的代码执行两次。我担心的是,如果我明天必须将数据字符串化四次会怎样。有没有更好的方法来字符串化每次都一致的数据,或者我做错了什么?
我有多个 JAR 文件,所有这些文件在字符串化一次或两次时都返回相同的响应,但在字符串化三次时工作正常。
节点JS代码:-
const childPorcess = exec('java -jar <PATH_TO_JAR_FILE> ' + JSON.stringify(JSON.stringify(JSON.stringify(data))),function(err,stdout,stderr) {
if (err) {
console.log(err)
}
console.log(JSON.parse(stdout))
})
我如何在 Java 中解析 :-
JSONObject data = (JSONObject) new JSONParser().parse(args[0]);
我的 JSON 对象:-
{
"locations": [
[30.795288,76.750204],[-30.795061,76.811813],[30.746093,76.844772],[30.783321,76.952143],[31.102846,77.021502],[32.154861,76.138451],[31.083183,76.516518],[30.147566,76.061848],[31.866464,77.586482],[32.286318,78.988468]
],"demands": [
0,1,3,6,8,1
],"vehicleCapacities" : [
40,40
],"vehicleNumber" : 2,"depot" : 0
}
预期的反应:-
"droppednodes": [],"Vehicle 2": [
0,1
],"Vehicle 1": [
0,7,2,4,9,5
],"Total distance": 129
当我字符串化一次或两次时收到错误
Exception in thread "main" Unexpected character (l) at position 1.
提前致谢!
编辑: 在与几个人、评论和一些专业人士讨论过这个问题后,问题似乎是由操作系统引起的(我使用的是 Windows)。在 mac OS 中使用它后,它在做了一些小的调整后工作。我们现在使用下面的方式来执行jar文件
response.data = await exec(`java -jar <PATH_TO_JAR> '${JSON.stringify(requestBody)}'`);
这仍然只适用于 Mac OS,我们还没有在 Linux 上检查过它,但对于 Windows,我仍然需要对其进行三次字符串化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。