title: Jackson change property names without copying POJO
body: <p>Today I have found a problem which I need some advice from you.
  I have a model from Frontend application which sends me some Json structure. It uses camelCase.
  Then I need to send the same model to another service to trigger some functionality but there is a different Json name convention. It basically uses underscore notation instead of camel case but also there some other random differences so I would not say it is strict underscore.</p>
  <p>And here's a problem. When I serialize Json from Frontend, is there a better way to remap those field names instead of creating duplicated model but with different JsonProperty annotation? I would like to avoid this solution because model contains around 15 classes so I would say it's big.</p>
  <p>Another solution I was thinking about is JSONATA expression. What do you think?</p>
  <pre><code>@Data
  @NoArgsConstructor
  @AllArgsConstructor
  public class ADLayout {
  
      private String firstName;
      private LayoutHeader layoutHeader;
      private Long projectId;
      private List&lt;Worksheet&gt; worksheets;
  }
  
  
  @Data
  @NoArgsConstructor
  @AllArgsConstructor
  public class ADLayoutAnotherService {
  
      @JsonProperty(&quot;first_name&quot;)
      private String firstName;
  
      @JsonProperty(&quot;layout_header&quot;)
      private LayoutHeader layoutHeader;
  
      @JsonProperty(&quot;project_id&quot;)
      private Long projectId;
  
      private List&lt;Worksheet&gt; worksheets;
  }
  </code></pre>
  <p><strong>FRONT Model</strong></p>
  <pre><code>{
      &quot;firstName&quot;: &quot;test&quot;,
      &quot;projectId&quot;: 5,
      &quot;worksheets&quot;: [
          {
              &quot;sheetUid&quot;: &quot;201f1630-c97d-4fec-89b4-7b45b44bcebc&quot;,
              &quot;sheetHeader&quot;: {
                  &quot;requestedData&quot;: &quot;&quot;,
                  &quot;instructions&quot;: &quot;&quot;
              }
          }
      ]
  }
  </code></pre>
  <p><strong>Another service Model</strong></p>
  <pre><code>{
      &quot;first_name&quot;: &quot;test&quot;,
      &quot;project_id&quot;: 5,
      &quot;worksheets&quot;: [
          {
              &quot;sheet_uid&quot;: &quot;201f1630-c97d-4fec-89b4-7b45b44bcebc&quot;,
              &quot;sheet_header&quot;: {
                  &quot;requested_data&quot;: &quot;&quot;,
                  &quot;INSTRUCTIONS&quot;: &quot;&quot;
              }
          }
      ]
  }
  </code></pre>
  <p>Important thing is that the model sent from Frontend is also stored in database and returned to frontend so @JsonAlias will not work here</p>