- 3 ways to convert String to JSON object in Java? Examples
- 1. String to JSON Object using Gson
- 2. JSON String to Java object using JSON-Simple
- 3. String to JSON — Jackson Example
- Как конвертировать строку String в объект JSON в Java?
- Преобразование строки в объект JSON с использованием Gson
- Конвертирование JSON в объект Java
- Библиотека Jackson
- Convert String to JSON Object in Java
- Use JSONObject to Convert a String to JSON Object in Java
- Use Google Gson to Convert a String to JSON Object in Java
- Use Jackson to Convert a String to JSON Object
- Related Article — Java String
- Related Article — Java JSON
3 ways to convert String to JSON object in Java? Examples
It’s very common nowadays to receive JSON String from a Java web service instead of XML, but unfortunately, JDK doesn’t yet support conversion between JSON String to JSON object. Keeping JSON as String always is not a good option because you cannot operate on it easily, you need to convert it into a JSON object before you do anything else e.g. retrieve any field or set different values. Fortunately, there are many open-source libraries which allows you to create JSON object from JSON formatted String like Gson from Google, Jackson, and json-simple. In this tutorial, you will learn how to use these 3 main libraries to do this conversion with step-by-step examples.
Even though you can use a simple or complex JSON String with lots of attributes and JSON arrays, I’ll use the following JSON String for example purpose:
jsonString = < "name" : "Ronaldo", "sport" : "soccer", "age" : 25, "id" : 121, "lastScores" : [ 2, 1, 3, 5, 0, 0, 1, 1 ] >
It’s simple, has 5 attributes, two of which are String and the other two are numeric. One attribute, lastScore is a JSON array.
1. String to JSON Object using Gson
The Gson is an open-source library to deal with JSON in Java programs. It comes from none other than Google, which is also behind Guava, a common purpose library for Java programmers. You can convert JSON String to Java object in just 2 lines by using Gson as shown below :
Gson g = new Gson(); Player p = g.fromJson(jsonString, Player.class)
You can also convert a Java object to JSON by using the toJson() method as shown below
The good thing about Gson is that it’s feature-rich and comes from Google, which is known for performance.
2. JSON String to Java object using JSON-Simple
The JSON-Simple is another open-source library that supports JSON parsing and formatting. The good thing about this library is its small size, which is perfect for memory constraint environments like J2ME and Android.
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
The good thing about json-simple is that it is also JDK 1.2 compatible, which means you can use it on a legacy project which is not yet in Java 5.
3. String to JSON — Jackson Example
Jackson is I guess the most popular JSON parsing library in the Java world. It’s fast, feature-rich, and supports streaming which is great for parsing large JSON output from web services. Following one-liner convert JSON string representing a soccer player into a Java class representing player:
Player ronaldo = new ObjectMapper().readValue(jsonString, Player.class);
One of the drawbacks of Jackson is that it requires JDK 1.5 so if you are stuck in an earlier Java version then it may not fit there. Also, Jackson doesn’t support J2ME, but one of the main advantages of using Jackson is that it supports streaming which can be used to parse huge JSON responses without loading it fully in memory.
Jackson is a very popular and efficient Java library to map Java objects to JSON and vice-versa. If you want to learn the basics of the Jackson library and how to use them, I suggest you take a look at the Jackson documentation.
That’s all about how to convert String to JSON objects in Java. You can use any of the json-simple, Gson, or Jackson for parsing JSON messages received from web services, each of them has its own advantage. Json-simple has a small memory footprint means it’s quite suitable for J2ME and Android clients, while Jackson is feature-rich so better supported for a large project. Gson is in between them and my favorite general-purpose JSON parser in Java programs.
- 5 JSON libraries Java JEE Programmer should know (list)
- How to parse JSON to/from Java Object using Jackson? (tutorial)
- How to use Google Protocol Buffer (protobuf) in Java? (tutorial)
- Top 10 RESTful Web Service Interview Questions (see here)
- What is the purpose of different HTTP methods in REST? (see here)
- How to convert JSON to HashMap in Java? (guide)
- 10 Things Java developers should learn? (article)
- How to ignore unknown properties while parsing JSON in Java? (tutorial)
- How to parse JSON with date fields in Java? (example)
- 5 Courses to learn RESTful API and Web services in Java? (courses)
- 10 free courses to learn Java in-depth (resource)
- How to convert JSON array to String array in Java using Gson? (tutorial)
- How to parse a large JSON file using Jackson Streaming API? (example)
Thanks for reading this article so far. If you like these 3 ways to convert String to JSON object in Java, then please share with your friends and colleagues. If you have any questions or feedback, then please drop a note.
Как конвертировать строку String в объект JSON в Java?
В настоящее время очень распространено получать JSON String от веб-службы Java вместо XML, но, к сожалению, JDK еще не поддерживает преобразование между JSON String в объект JSON.
Сохранение JSON в качестве String не всегда является хорошим вариантом, поскольку вы не можете легко с ним работать, вам нужно преобразовать его в объект JSON, прежде чем делать что-либо еще, например. получить любое поле или установить разные значения.
Существует много библиотек с открытым исходным кодом, которые позволяют создавать JSON-объекты из форматированной строки JSON, например, Gson от Google, Jackson или просто JSON.
В этом руководстве вы узнаете, как конвертировать и преобразовать строку String в JsonObject, используя 3 основные библиотеки.
Будем использовать следующую строку JSON для примера:
Это просто, который имеет 5 атрибутов, два из которых являются String, а два других являются числовыми. Одним из атрибутов lastScore является массив JSON.
Преобразование строки в объект JSON с использованием Gson
Gson – это библиотека с открытым исходным кодом для работы с JSON в программах Java. Он создан Google, который также стоит за Guava, библиотекой общего назначения для Java-программистов.
Вы можете конвертировать JSON String в объект Java всего за 2 строки, используя Gson, как показано ниже:
Gson g = new Gson(); Player p = g.fromJson(jsonString, Player.class)
Или преобразовать Java-объект в JSON с помощью метода toJson (), как показано ниже:
Если вы не очень хорошо знакомы с самим форматом JSON, я бы посоветовал прочитать «Beginning JSON» от Ben Smit, чтобы узнать больше.
Конвертирование JSON в объект Java
JSON-Simple – это еще одна библиотека с открытым исходным кодом, которая поддерживает синтаксический анализ и форматирование JSON. У нее небольшой размер, который идеально подходит для сред с ограниченной памятью, таких как J2ME и Android.
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
Полезной особенностью json-simple является то, что она также совместима с JDK 1.2, что означает, что вы можете использовать ее в устаревшем проекте, который еще не в Java 5.
Библиотека Jackson
Jackson, я думаю, самая популярная библиотека синтаксического анализа JSON в мире Java. Она быстрая, многофункциональная и поддерживает потоковую передачу, что отлично подходит для анализа больших выходных данных JSON из веб-сервисов.
С помощью одной строки, вы можете преобразовать строку JSON, представляющую футболиста, в класс Java, представляющий игрока:
Player ronaldo = new ObjectMapper().readValue(jsonString, Player.class);
Один из недостатков Jackson заключается в том, что для него требуется JDK 1.5, поэтому, если вы застряли в более ранней версии Java, он может там не работать.
Jackson не поддерживает J2ME, но одно из главных преимуществ использования заключается в том, что он поддерживает потоковую передачу, которую можно использовать для анализа большого ответа JSON без полной загрузки его в память.
Вы можете использовать любую из библиотек: json-simple, Gson или Jackson для анализа JSON, полученных от веб-сервисов, каждое из которых имеет свои преимущества.
- Json-simple имеет небольшой объем памяти и он вполне подходит для J2ME и Android.
- Jackson обладает богатым набором функций, поэтому лучше применять для большого проекта.
- Gson находится между ними и применим для общего назначения в программах Java.
Средняя оценка 4 / 5. Количество голосов: 4
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Видим, что вы не нашли ответ на свой вопрос.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.
Convert String to JSON Object in Java
- Use JSONObject to Convert a String to JSON Object in Java
- Use Google Gson to Convert a String to JSON Object in Java
- Use Jackson to Convert a String to JSON Object
In this tutorial, we are going to discuss how to convert a string into a JSON object in Java. We have different libraries available to perform this task.
Use JSONObject to Convert a String to JSON Object in Java
JSONObject can parse a string into a map-like object. It stores unordered key-value pairs. JSON-java library, commonly known as org.json , is used here with required maven dependency. The maven dependency which we used is given below.
org.json json 20201115
To parse a JSON string to JSONObject , we pass the string to the constructor as shown below.
import org.json.JSONObject; import org.json.JSONException; public class StringToJsonObject public static void main(String[] args) try String str = ""; JSONObject jsonObject = new JSONObject(str); System.out.println("OBJECT : "+jsonObject.toString()); > catch (JSONException err) System.out.println("Exception : "+err.toString()); > > >
Use Google Gson to Convert a String to JSON Object in Java
Google Gson is a java library to serialize/deserialize Java Objects to JSON or vice-versa. It can also be used to convert Java string to its equivalent JSON Object.
The maven dependency that is required for this library is given below.
com.google.code.gson gson 2.8.6
In this code, we first create an instance of Gson using GsonBuilder by calling its create() method. We can also enable various configuration settings on builder . As shown below we use its setPrettyPrinting() method. As the name suggests it pretty prints the JSON output.
Later we used the fromJson method of Gson Object, which parses the JSON string to the User object. The toJson() method uses Gson to convert the User object back to the JSON string. Thus string str is converted into a JSON Object using the Gson library.
import com.google.gson.GsonBuilder; import com.google.gson.JsonIOException; import com.google.gson.Gson; public class StringToJsonObject public static void main(String[] args) try String str = ""; GsonBuilder builder = new GsonBuilder(); builder.setPrettyPrinting(); Gson gson = builder.create(); User user = gson.fromJson(str,User.class); System.out.println(user.ShowAsString()); str= gson.toJson(user); System.out.println("User Object as string : "+str); >catch(JsonIOException err) System.out.println("Exception : "+err.toString()); > > > class User public String name; public int age; public String place; public String ShowAsString() return "User ["+name+", "+ age+ ", " +place+ "]"; > >
User [John, 21, Nevada] User Object as string : "name": "John", "age": 21, "place": "Nevada" >
Use Jackson to Convert a String to JSON Object
Jackson is also known as the Java JSON library. The ObjectMapper is used to map JSON into Java Objects or Java Objects into JSON. The maven dependency used for this library is shown below.
com.fasterxml.jackson.core jackson-databind 2.11.3
The Jackson has a built-in tree model to represent JSON Object. JsonNode is the class that represents the tree model. The ObjectMapper instance mapper parses JSON into a JsonNode tree model calling readTree() .
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class StringToJsonObject public static void main(String[] args) String json_str = ""; ObjectMapper mapper = new ObjectMapper(); try JsonNode node = mapper.readTree(json_str); String name = node.get("name").asText(); String place = node.get("age").asText(); System.out.println("node"+node); System.out.println("name: "+name +", place: "+place); > catch (JsonProcessingException e) e.printStackTrace(); > > >
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
Related Article — Java String
Related Article — Java JSON
Copyright © 2023. All right reserved