Мне нужно выполнить Java-код из php и передать строку JSON в качестве аргумента.Вызов Java из PHP с аргументами 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 {
Вот проблема: потому что "главный" конструктор может принимать только массив строк [], а не простой строки, в Java сценарий разбивает строку JSON на массив - например:
args[0] = "regrType:3"
args[1] = "fund_id:25106478"
args[2] = "factors:[2"
Как я могу заставить его взять все Входная строка JSON? Если я не могу найти способ получить неповрежденную строку JSON в Java, что я могу сделать с массивами как элементы JSON - см. Args [2]?
Я мог бы разделить массив и использовать другой разделитель, но, возможно, есть более элегантный способ сделать это.
Благодаря
Вам нужно указать и убрать строку, которую вы передаете в командной строке. Но мне трудно найти вескую причину. – datasage
Если вам нужно получить значение от JAVA до PHP, вы можете использовать CURL в PHP для публикации и получения значений из JAVA-приложения, поскольку JSON –
- это Java, а не JavaScript. Проблема в том, что основной конструктор Java может принимать только массив String [], но PHP exec передает строку. Также у меня нет проблем с получением значений из java в PHP. – user2723490