code: def testJsonName(self):
      descriptor_proto = descriptor_pb2.DescriptorProto()
      descriptor_proto.name = "TestJsonName"
      names = [
          "field_name",
          "fieldName",
          "FieldName",
          "_field_name",
          "FIELD_NAME",
          "json_name",
      ]
      json_names = [
          "fieldName",
          "fieldName",
          "FieldName",
          "FieldName",
          "FIELDNAME",
          "@type",
      ]
      for index in range(len(names)):
          field = descriptor_proto.field.add()
          field.number = index + 1
          field.name = names[index]
      field.json_name = "@type"
      result = descriptor.MakeDescriptor(descriptor_proto)
      for index in range(len(json_names)):
          self.assertEqual(
              result.fields[index].json_name, json_names[index]
          )
  
imports: import sys
  from google.protobuf import unittest_custom_options_pb2
  from google.protobuf import unittest_import_pb2
  from google.protobuf import unittest_pb2
  from google.protobuf import descriptor_pb2
  from google.protobuf.internal import api_implementation
  from google.protobuf.internal import test_util
  from google.protobuf import descriptor
  from google.protobuf import descriptor_pool
  from google.protobuf import symbol_database
  from google.protobuf import text_format
label_desc: Use image node_id 5 for calling the MakeDescriptorTest obj's underlying member method code with example usage: obj.testJsonName() without return types