Java 字节[]到字符串的转换
嗨 我使用Gearman处理PHP和java之间的通信。我正在尝试使用json_编码从PHP向java worker发送数组。 在php端:Java 字节[]到字符串的转换,java,php,gearman,Java,Php,Gearman,嗨 我使用Gearman处理PHP和java之间的通信。我正在尝试使用json_编码从PHP向java worker发送数组。 在php端: public function test() { $test = $this->serviceManager->get('test\Model\test'); //print_r($test);exit; $message = array( 'to' => 'abhi',
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);
然后我得到的答案是:
Hiii,
我得到了答案,在使用json_编码后,我将数组发送给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);
}
数据有什么问题?请参阅调试器中的突出显示文本。。。我已经更新了文本。为什么要使用
String.valueOf(json)
?json已经是一个字符串了!jsonObject
看起来怎么样?好的,我删除了它,但答案还是一样的