Exclude a Kotlin data class property/field from serialization/deserialization using gson












0















I am trying to exclude a Kotlin property from deserialization using gson. I have tried different methods from annotating the property with @Transient to creating a custom annotation strategy (specifying the strategy in the gson builder of course), but nothing seems to be working, as the property keeps getting null instead of the value I initialized the property with.



I have not tried using the @Expose annotation, but I do not want to annotate other fields with @Expose



Please, how can I achieve this please using gson + Kotlin?










share|improve this question





























    0















    I am trying to exclude a Kotlin property from deserialization using gson. I have tried different methods from annotating the property with @Transient to creating a custom annotation strategy (specifying the strategy in the gson builder of course), but nothing seems to be working, as the property keeps getting null instead of the value I initialized the property with.



    I have not tried using the @Expose annotation, but I do not want to annotate other fields with @Expose



    Please, how can I achieve this please using gson + Kotlin?










    share|improve this question



























      0












      0








      0








      I am trying to exclude a Kotlin property from deserialization using gson. I have tried different methods from annotating the property with @Transient to creating a custom annotation strategy (specifying the strategy in the gson builder of course), but nothing seems to be working, as the property keeps getting null instead of the value I initialized the property with.



      I have not tried using the @Expose annotation, but I do not want to annotate other fields with @Expose



      Please, how can I achieve this please using gson + Kotlin?










      share|improve this question
















      I am trying to exclude a Kotlin property from deserialization using gson. I have tried different methods from annotating the property with @Transient to creating a custom annotation strategy (specifying the strategy in the gson builder of course), but nothing seems to be working, as the property keeps getting null instead of the value I initialized the property with.



      I have not tried using the @Expose annotation, but I do not want to annotate other fields with @Expose



      Please, how can I achieve this please using gson + Kotlin?







      kotlin gson retrofit2






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 22 '18 at 7:36







      idrisadetunmbi

















      asked Nov 22 '18 at 7:12









      idrisadetunmbiidrisadetunmbi

      406




      406
























          1 Answer
          1






          active

          oldest

          votes


















          0














          data class Foo (
          @Expose(deserialize = false) val bar: Bar
          )





          share|improve this answer
























          • would this not require that I should mark other fields I want for deserialization with @Expose, cause I am equally trying to avoid that

            – idrisadetunmbi
            Nov 22 '18 at 7:34













          • it depends on how you will create a gson builder. for example: gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation() .create() - will exclude others

            – Sergey Rybalkin
            Nov 22 '18 at 7:38











          • what if I am initializing the bar property? This is exactly where the problem is. When I initialize the property, it goes back to null

            – idrisadetunmbi
            Nov 22 '18 at 8:46











          • I guess I found what the issue is github.com/google/gson/issues/1148

            – idrisadetunmbi
            Nov 22 '18 at 9:40











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53425600%2fexclude-a-kotlin-data-class-property-field-from-serialization-deserialization-us%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          data class Foo (
          @Expose(deserialize = false) val bar: Bar
          )





          share|improve this answer
























          • would this not require that I should mark other fields I want for deserialization with @Expose, cause I am equally trying to avoid that

            – idrisadetunmbi
            Nov 22 '18 at 7:34













          • it depends on how you will create a gson builder. for example: gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation() .create() - will exclude others

            – Sergey Rybalkin
            Nov 22 '18 at 7:38











          • what if I am initializing the bar property? This is exactly where the problem is. When I initialize the property, it goes back to null

            – idrisadetunmbi
            Nov 22 '18 at 8:46











          • I guess I found what the issue is github.com/google/gson/issues/1148

            – idrisadetunmbi
            Nov 22 '18 at 9:40
















          0














          data class Foo (
          @Expose(deserialize = false) val bar: Bar
          )





          share|improve this answer
























          • would this not require that I should mark other fields I want for deserialization with @Expose, cause I am equally trying to avoid that

            – idrisadetunmbi
            Nov 22 '18 at 7:34













          • it depends on how you will create a gson builder. for example: gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation() .create() - will exclude others

            – Sergey Rybalkin
            Nov 22 '18 at 7:38











          • what if I am initializing the bar property? This is exactly where the problem is. When I initialize the property, it goes back to null

            – idrisadetunmbi
            Nov 22 '18 at 8:46











          • I guess I found what the issue is github.com/google/gson/issues/1148

            – idrisadetunmbi
            Nov 22 '18 at 9:40














          0












          0








          0







          data class Foo (
          @Expose(deserialize = false) val bar: Bar
          )





          share|improve this answer













          data class Foo (
          @Expose(deserialize = false) val bar: Bar
          )






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 22 '18 at 7:29









          Sergey RybalkinSergey Rybalkin

          1,352317




          1,352317













          • would this not require that I should mark other fields I want for deserialization with @Expose, cause I am equally trying to avoid that

            – idrisadetunmbi
            Nov 22 '18 at 7:34













          • it depends on how you will create a gson builder. for example: gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation() .create() - will exclude others

            – Sergey Rybalkin
            Nov 22 '18 at 7:38











          • what if I am initializing the bar property? This is exactly where the problem is. When I initialize the property, it goes back to null

            – idrisadetunmbi
            Nov 22 '18 at 8:46











          • I guess I found what the issue is github.com/google/gson/issues/1148

            – idrisadetunmbi
            Nov 22 '18 at 9:40



















          • would this not require that I should mark other fields I want for deserialization with @Expose, cause I am equally trying to avoid that

            – idrisadetunmbi
            Nov 22 '18 at 7:34













          • it depends on how you will create a gson builder. for example: gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation() .create() - will exclude others

            – Sergey Rybalkin
            Nov 22 '18 at 7:38











          • what if I am initializing the bar property? This is exactly where the problem is. When I initialize the property, it goes back to null

            – idrisadetunmbi
            Nov 22 '18 at 8:46











          • I guess I found what the issue is github.com/google/gson/issues/1148

            – idrisadetunmbi
            Nov 22 '18 at 9:40

















          would this not require that I should mark other fields I want for deserialization with @Expose, cause I am equally trying to avoid that

          – idrisadetunmbi
          Nov 22 '18 at 7:34







          would this not require that I should mark other fields I want for deserialization with @Expose, cause I am equally trying to avoid that

          – idrisadetunmbi
          Nov 22 '18 at 7:34















          it depends on how you will create a gson builder. for example: gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation() .create() - will exclude others

          – Sergey Rybalkin
          Nov 22 '18 at 7:38





          it depends on how you will create a gson builder. for example: gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation() .create() - will exclude others

          – Sergey Rybalkin
          Nov 22 '18 at 7:38













          what if I am initializing the bar property? This is exactly where the problem is. When I initialize the property, it goes back to null

          – idrisadetunmbi
          Nov 22 '18 at 8:46





          what if I am initializing the bar property? This is exactly where the problem is. When I initialize the property, it goes back to null

          – idrisadetunmbi
          Nov 22 '18 at 8:46













          I guess I found what the issue is github.com/google/gson/issues/1148

          – idrisadetunmbi
          Nov 22 '18 at 9:40





          I guess I found what the issue is github.com/google/gson/issues/1148

          – idrisadetunmbi
          Nov 22 '18 at 9:40




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53425600%2fexclude-a-kotlin-data-class-property-field-from-serialization-deserialization-us%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          Npm cannot find a required file even through it is in the searched directory