2016-04-21 180 views
1

我正在寫一個使用avro反序列化數據的php腳本。 我接收數據作爲avro二進制流的緩衝區。 在avro php的例子中,我只看到一個從文件中讀取數據的例子。不是二進制緩衝區。avro php - 從緩衝區讀取

如何反序列化數據? 我所尋找的是Avro的

回答

0
$binaryBuffer = <get_avro_serialized_record> 

$writersSchema = '{ 
    "type" : "record", 
    "name" : "Example", 
    "namespace" : "com.example.record", 
    "fields" : [ { 
    "name" : "userId", 
    "type" : "int" 
    ............. 
}' 

$reader = new AvroIODatumReader($writersSchema); 
$io = new AvroStringIO($binaryBuffer) 
$deserializedRecord = $reader->read(new AvroIOBinaryDecoder($io)) 

假設你想單獨反序列化的每個記錄,並有作家架構的二進制譯碼器。