Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menyesuaikan Nama Medan Sambungan Protobuf dalam Output JSON?

Bagaimanakah Saya Boleh Menyesuaikan Nama Medan Sambungan Protobuf dalam Output JSON?

Patricia Arquette
Patricia Arquetteasal
2024-11-26 15:17:13825semak imbas

How Can I Customize Protobuf Extension Field Names in JSON Output?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn