2017-05-19 8 views
9

मान लिया जाये कि मैं इस तरह संरचना के साथ एक .proto है:'वन' प्रोटोबफ फील्ड की अपेक्षित JSON क्रमबद्धता क्या है?

syntax = "proto3"; 

message Foo { 
    ... 
} 
message Bar { 
    ... 
} 

message Msg { 
    string baz = 1; 
    oneof some_union { 
    Foo foo = 2; 
    Bar bar = 3; 
    } 
} 

इस तरह के संदेश serialise करने की उम्मीद तरीका क्या है? spec के JSON Mapping अनुभाग बहुत स्पष्ट नहीं है।

मैं इसे प्रस्तुत करने के कम से कम दो तरीके देख सकता हूं, जो सही है?

सबसे पहले जिस तरह से:, "शीर्ष स्तरीय" में एक ही तत्व है दूसरों की अनदेखी:

{ 
    "baz" : 0, 
    "foo" : { ... } 
} 

दूसरा तरीका: संघ के नाम के साथ एक "unmbrella" संपत्ति है, और यह एक एकल देना खेत।

{ 
    "baz" : 0, 
    "some_union": { 
    "foo" : { .... } 
    } 
} 

मुझे क्या उम्मीद करनी चाहिए?

+0

Google के अपने कार्यान्वयन में से किसी एक के साथ परीक्षण करने के लिए काफी आसान होना चाहिए, लेकिन मेरा अनुमान पहला होगा क्योंकि यह द्विआधारी प्रतिनिधित्व में एन्कोड किए जाने के तरीके से मेल खाता है। – jpa

उत्तर

0

मैं कुछ परीक्षण कोड लिखता हूं, यह दिखाता है कि पहला सही है।

+0

ठीक है, हमने एक ही दृष्टिकोण लिया, और अलग-अलग भाषाओं में विभिन्न कार्यान्वयन के साथ अलग-अलग परिणाम हुए: डी – phtrivier

संबंधित मुद्दे