Hiii,byte [] to string conversion
Я использую 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, как показано на рисунке, как "" {\ "к \": \ "абхи \", \ "message \": \ "this test \"} "". Может кто-то помочь.
За время, я м фиксируя это с помощью этого кода
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);
И тогда я получаю ответ, как:
И что не так с этими данными? – Jens
См. Текст выделения в отладчике ... Я обновил текст. –
Почему вы используете 'String.valueOf (json)'? json уже строка! Как выглядит 'jsonObject'? – Jens