Menyesuaikan Nama Medan Sambungan Protobuf dalam JSON
Apabila memanjangkan mesej dalam Penampan Protokol (protobuf) dan menyusunnya sebagai JSON, nama medan untuk mesej lanjutan biasanya muncul dalam kurungan dengan awalan "message.extension_message_name." Ini boleh menyusahkan dan mengelirukan, terutamanya jika mesej sambungan digunakan di tempat lain dalam API dengan nama yang berbeza.
Isu ini berpunca daripada logik dalam perpustakaan jsonpb Protobuf, di mana nama JSON ditetapkan sebagai "[% s]" desc.Name, dengan desc.Name mewakili nama medan sambungan yang tidak layak.
Untuk memintas pengehadan ini, panduan bahasa mencadangkan menggunakan pilihan medan json_name untuk mengatasi nama JSON lalai. Dengan menambahkan json_name = "custom_name" pada medan sambungan, medan akan disirikan dengan custom_name yang ditentukan dalam JSON:
message TestMessage { extend TestMessage { ExtensionPlacement extension_message_name = 10; String messageField = 10 [json_name = "customFieldName"]; } }
Dengan pengubahsuaian ini, medan lanjutan akan muncul sebagai "customFieldName" dalam JSON, sebagai dikehendaki.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Nama Medan Sambungan Protobuf dalam Output JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!