gpt4 book ai didi

java - 使用 JSON 参数从 PHP 调用 Java

转载 作者:行者123 更新时间:2023-12-02 06:46:23 25 4
gpt4 key购买 nike

我需要从 php 执行 Java 代码并传递一个 JSON 字符串作为参数。

PHP 部分:

$json_arr["regrType"] = 3;
$json_arr["fund_id"] = 25106478;
$json_arr["factors"] = array(2,7,18,19);
$input = json_encode($json_arr);
exec("java StepRegTest.Main " . $input . " 2>&1", $output);

Java入口:

public class Main {
public static void main(String[] args) throws Exception {

问题是:因为“main”构造函数只能采用 String[] 数组而不是简单的字符串,因此 Java 脚本将 JSON 字符串分解为数组 - 例如:

args[0] = "regrType:3"
args[1] = "fund_id:25106478"
args[2] = "factors:[2"

如何强制它获取整个 JSON 输入字符串?如果我找不到在 Java 中获取完整 JSON 字符串的方法,我可以用数组作为 JSON 元素做什么 - 请参阅 args[2]?

我可以拆分数组部分并使用不同的分隔符,但也许有一种更优雅的方法。

谢谢

最佳答案

要将其全部作为单个字符串传递,请在其两侧加上引号。

所以如果你使用它应该可以工作

exec("java StepRegTest.Main \"" . $input . "\" 2>&1", $output); //Note the added quotes

这个问题与 String 与 String[] 无关,这只是一个问题,如果不将它们放在引号中,函数参数将由空格分隔。比较:

java SomeClass 这是四个参数

java SomeClass“这是一个参数”

编辑:最初我提到你必须转义字符串中的引号;刚刚测试了这个,事实并非如此。示例:

java SomeClass“这“仍然”是一个参数”

关于java - 使用 JSON 参数从 PHP 调用 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18605274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com