java — преобразование байта [] в строку

Hiii,

Я использую Gearman для обработки связи между PHP и Java. Я пытаюсь отправить массив из PHP с помощью json_encode для Java-работника.
На стороне php:

public function test()
{
$test = $this->serviceManager->get('test\Model\test');
//print_r($test);exit;
$message = array(
'to'        =>  'abhi',
'message'   =>  'this is a test',
);
$test->sendtoJavaWorker(json_encode($message));
}

На стороне Java:

@Override
public byte[] work(String function, byte[] data, GearmanFunctionCallback callback) throws Exception {

String json = new String(data, "UTF-8");

JSONObject jsonObject = new JSONObject(String.valueOf(json));

String to = (String) jsonObject.get("to");

return data;
}

Теперь я получаю значение json, как показано на рисунке, например, «» {\ «to \»: \ «abhi \», \ «message \»: \ «это тест \»} «». Может кто-нибудь помочь.

введите описание изображения здесь

В настоящее время я исправляю это с помощью этого кода

String json = new String(data);
json = json.toString().replace("\\", "");
StringBuilder sb = new StringBuilder(json);
sb.deleteCharAt(0);
sb.deleteCharAt(sb.length()-1);
json = sb.toString();

System.out.println(json);

И тогда я получаю ответ, как:

введите описание изображения здесь

0

Решение

Hiii,
Я получил ответ, я отправлял массив после использования json_encode для gearman, оказывается, отправка непосредственно на него работала.

public function test()
{
$test = $this->serviceManager->get('test\Model\test');
//print_r($test);exit;
$message = array(
'to'        =>  'abhi',
'message'   =>  'this is a test',
);
$test->sendtoJavaWorker($message);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]