It is impossible explicitly, however, you can deserialize you String into List< Object> and then cast your Object in for-loop to Map< String, Object>:
String jsonString = '[{"id":2,"name":"Abc_SS","description":"Abc"},{"id":100,"name":"sales","description":"sales"}]'; List items = [List] JSON.deserializeUntyped[jsonString]; for [Object itemObj : items] { Map item = [Map] itemObj; //now you can work with it like you always work with Map }In this article, we'll convert a JSON array into a Java Array and Java List using Jackson.
Since we're using Jackson, you'll have to add it to your project. If you're using Maven, it's as easy as adding the dependency:
com.fasterxml.jackson.core jackson-databind 2.11.2Or, if you're using Gradle:
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.11.2'Since we're mapping from JSON to our own objects, let's go ahead and define a POJO:
Reading JSON from a String
Let's start out with reading JSON from a String. The String contains an array of programming languages, with brief descriptions:
String json = "[{\"name\": \"Java\", \"description\": \"Java is a class-based, object-oriented programming language.\"},{\"name\": \"Python\", \"description\": \"Python is an interpreted, high-level and general-purpose programming language.\"}, {\"name\": \"JS\", \"description\": \"JS is a programming language that conforms to the ECMAScript specification.\"}]";Using Jackson's ObjectMapper class, it's easy to read values and map them to an object, or an array of objects. We just use the readValue[] method, passing the JSON contents and the class we'd like to map to. Since we're mapping to an array of Language, we'll also specify this in the readValue[] method:
final ObjectMapper objectMapper = new ObjectMapper[]; Language[] langs = objectMapper.readValue[json, Language[].class];Alternatively, you can extract the values directly into a list, using Jackson's TypeReference:
List langList = objectMapper.readValue[json, new TypeReference[]{}];Without using TypeReference, which is advised, you can convert the array into a list with any other approach at your disposal, such as:
List langList = new ArrayList[Arrays.asList[langs]];And then print out the values:
langList.forEach[x -> System.out.println[x.toString[]]];This results in:
Reading JSON from a File
Check out our hands-on, practical guide to learning Git, with best-practices, industry-accepted standards, and included cheat sheet. Stop Googling Git commands and actually learn it!
We don't always deal with JSON in String format. Oftentimes, the contents come from a File. Thankfully, Jackson makes this task as easy as the last one, we just provide the File to the readValue[] method:
The langs.json file contains:
[ { "name": "Java", "description": "Java is a class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible." }, { "name": "Python", "description": "Python is an interpreted, high-level and general-purpose programming language. Created by Guido van Rossum and first released in 1991." }, { "name": "JS", "description": "JS is a programming language that conforms to the ECMAScript specification. JavaScript is high-level, often just-in-time compiled, and multi-paradigm." } ]Running this code results in:
Language{name='Java', description='Java is a class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.'} Language{name='Python', description='Python is an interpreted, high-level and general-purpose programming language. Created by Guido van Rossum and first released in 1991.'} Language{name='JS', description='JS is a programming language that conforms to the ECMAScript specification. JavaScript is high-level, often just-in-time compiled, and multi-paradigm.'}Conclusion
In this article, we've used Jackson to parse and map the values from a JSON String and file into a Java array and list.
This is done via the readValue[] method, by specifying the JSON contents [String or file] and by specifying the POJO we'd like to map to.
private List map_string;
Json you need to pass:-
{ "map_formula" : [ { "A+" : "if[price