Exclude a Kotlin data class property/field from serialization/deserialization using gson
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
add a comment |
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
add a comment |
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
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
kotlin gson retrofit2
edited Nov 22 '18 at 7:36
idrisadetunmbi
asked Nov 22 '18 at 7:12


idrisadetunmbiidrisadetunmbi
406
406
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
data class Foo (
@Expose(deserialize = false) val bar: Bar
)
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
data class Foo (
@Expose(deserialize = false) val bar: Bar
)
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
add a comment |
data class Foo (
@Expose(deserialize = false) val bar: Bar
)
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
add a comment |
data class Foo (
@Expose(deserialize = false) val bar: Bar
)
data class Foo (
@Expose(deserialize = false) val bar: Bar
)
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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