Menyesuaikan Nama Medan JSON untuk Sambungan Protobuf
Pelanjutan Protobuf, apabila disirikan kepada JSON, lalai kepada nama medan yang termasuk kurungan segi empat sama dan awalan menunjukkan mesej induk sambungan. Ini boleh menyusahkan apabila anda lebih suka nama medan JSON yang lebih ringkas atau bermakna secara semantik.
Latar Belakang
Pakej jsonpb Protobuf menjana JSON daripada mesej protobuf. Nama medan JSON terutamanya berasal daripada nama medan mesej. Walau bagaimanapun, untuk sambungan, format khas digunakan: "[message.extension_message_name]". Ini direka bentuk untuk mengelakkan konflik nama medan apabila berbilang sambungan digunakan pada mesej.
Penyelesaian: Gunakan Pilihan Medan json_name
Panduan bahasa Protobuf menyediakan penyelesaian untuk menyesuaikan nama medan JSON untuk sambungan: pilihan medan json_name. Dengan menganotasi medan sambungan dengan pilihan ini, anda boleh menentukan nama medan JSON yang dikehendaki.
Contohnya:
message TestMessage { extensions 1 to 10; extend TestMessage { optional string my_extension_field = 1 [json_name="my_custom_field_name"]; } }
Dalam contoh ini, medan sambungan my_extension_field akan disirikan kepada JSON sebagai my_custom_field_name.
Faedah Menggunakan json_name
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Nama Medan JSON untuk Sambungan Protobuf?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!