Map with json to a List with specific key
I have managed to get out a json list and get a key out from the json.
I am working on how to put every version value in a list. How do I do that from a Map?
Map convertedJSONMap = new JsonSlurperClassic().parseText(data)
//If you have the nodes then fetch the first one only
if(convertedJSONMap."items")
println "Version : " + convertedJSONMap."items"[0]."version"
So what I need is some kind of foreach loop that is going to throw the Map and just getting the items. version from each and put it in a list. How?
groovy
add a comment |
I have managed to get out a json list and get a key out from the json.
I am working on how to put every version value in a list. How do I do that from a Map?
Map convertedJSONMap = new JsonSlurperClassic().parseText(data)
//If you have the nodes then fetch the first one only
if(convertedJSONMap."items")
println "Version : " + convertedJSONMap."items"[0]."version"
So what I need is some kind of foreach loop that is going to throw the Map and just getting the items. version from each and put it in a list. How?
groovy
add a comment |
I have managed to get out a json list and get a key out from the json.
I am working on how to put every version value in a list. How do I do that from a Map?
Map convertedJSONMap = new JsonSlurperClassic().parseText(data)
//If you have the nodes then fetch the first one only
if(convertedJSONMap."items")
println "Version : " + convertedJSONMap."items"[0]."version"
So what I need is some kind of foreach loop that is going to throw the Map and just getting the items. version from each and put it in a list. How?
groovy
I have managed to get out a json list and get a key out from the json.
I am working on how to put every version value in a list. How do I do that from a Map?
Map convertedJSONMap = new JsonSlurperClassic().parseText(data)
//If you have the nodes then fetch the first one only
if(convertedJSONMap."items")
println "Version : " + convertedJSONMap."items"[0]."version"
So what I need is some kind of foreach loop that is going to throw the Map and just getting the items. version from each and put it in a list. How?
groovy
groovy
edited Nov 15 '18 at 8:58
Szymon Stepniak
18k83465
18k83465
asked Nov 15 '18 at 8:24
Mikael FlobergMikael Floberg
6119
6119
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Groovy has Collection.collect(closure)
that can be used to transform a list of values of one type to a list of new values. Consider the following example:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.collect it.version
println list.inspect()
Output:
['1.23', '1.14.0', '2.11', '8.0', '2.32', '4.11.2.3']
Groovy also provides spread operator *.
which can simplify this example to something like this:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items*.version
println list.inspect()
Or even this (you can replace *.version
with just .version
):
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.version
println list.inspect()
All examples produce the same output.
Absolutly perfect answer. Thx
– Mikael Floberg
Nov 15 '18 at 8:57
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%2f53315131%2fmap-with-json-to-a-list-with-specific-key%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
Groovy has Collection.collect(closure)
that can be used to transform a list of values of one type to a list of new values. Consider the following example:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.collect it.version
println list.inspect()
Output:
['1.23', '1.14.0', '2.11', '8.0', '2.32', '4.11.2.3']
Groovy also provides spread operator *.
which can simplify this example to something like this:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items*.version
println list.inspect()
Or even this (you can replace *.version
with just .version
):
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.version
println list.inspect()
All examples produce the same output.
Absolutly perfect answer. Thx
– Mikael Floberg
Nov 15 '18 at 8:57
add a comment |
Groovy has Collection.collect(closure)
that can be used to transform a list of values of one type to a list of new values. Consider the following example:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.collect it.version
println list.inspect()
Output:
['1.23', '1.14.0', '2.11', '8.0', '2.32', '4.11.2.3']
Groovy also provides spread operator *.
which can simplify this example to something like this:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items*.version
println list.inspect()
Or even this (you can replace *.version
with just .version
):
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.version
println list.inspect()
All examples produce the same output.
Absolutly perfect answer. Thx
– Mikael Floberg
Nov 15 '18 at 8:57
add a comment |
Groovy has Collection.collect(closure)
that can be used to transform a list of values of one type to a list of new values. Consider the following example:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.collect it.version
println list.inspect()
Output:
['1.23', '1.14.0', '2.11', '8.0', '2.32', '4.11.2.3']
Groovy also provides spread operator *.
which can simplify this example to something like this:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items*.version
println list.inspect()
Or even this (you can replace *.version
with just .version
):
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.version
println list.inspect()
All examples produce the same output.
Groovy has Collection.collect(closure)
that can be used to transform a list of values of one type to a list of new values. Consider the following example:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.collect it.version
println list.inspect()
Output:
['1.23', '1.14.0', '2.11', '8.0', '2.32', '4.11.2.3']
Groovy also provides spread operator *.
which can simplify this example to something like this:
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items*.version
println list.inspect()
Or even this (you can replace *.version
with just .version
):
import groovy.json.JsonSlurper
def json = '''
"items": [
"id": "ID-001", "version": "1.23", "name": "Something",
"id": "ID-002", "version": "1.14.0", "name": "Foo Bar",
"id": "ID-003", "version": "2.11", "name": "Something else",
"id": "ID-004", "version": "8.0", "name": "ABC",
"id": "ID-005", "version": "2.32", "name": "Empty",
"id": "ID-006", "version": "4.11.2.3", "name": "Null"
]
'''
def convertedJSONMap = new JsonSlurper().parseText(json)
def list = convertedJSONMap.items.version
println list.inspect()
All examples produce the same output.
answered Nov 15 '18 at 8:36
Szymon StepniakSzymon Stepniak
18k83465
18k83465
Absolutly perfect answer. Thx
– Mikael Floberg
Nov 15 '18 at 8:57
add a comment |
Absolutly perfect answer. Thx
– Mikael Floberg
Nov 15 '18 at 8:57
Absolutly perfect answer. Thx
– Mikael Floberg
Nov 15 '18 at 8:57
Absolutly perfect answer. Thx
– Mikael Floberg
Nov 15 '18 at 8:57
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%2f53315131%2fmap-with-json-to-a-list-with-specific-key%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