- Как конвертировать строку String в объект JSON в Java?
- Преобразование строки в объект JSON с использованием Gson
- Конвертирование JSON в объект Java
- Библиотека Jackson
- How to format JSON String in Java — Jackson Example Tutorial
- JSON String Format and Pretty Print Example
- Maven Dependency and JAR Files for Jackson
- Json string format in java
- Learn Latest Tutorials
- Preparation
- Trending Technologies
- B.Tech / MCA
- Javatpoint Services
- Training For College Campus
Как конвертировать строку 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
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Видим, что вы не нашли ответ на свой вопрос.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.
How to format JSON String in Java — Jackson Example Tutorial
You can format JSON String in Java using Jackson API’s pretty print feature. As you might have noticed in my previous JSON tutorials that the output of the programs is not properly formatted, which makes them hard to read, especially in large log files where there are so many other texts, both JSON and normal text is there. That’s why it’s advised to print JSON String properly formatted because then it will stand out in log file or console. Whenever we print JSON String from Java Programs by using method writeValueAsString() , it usually comes in one line, as shown in the following example :
"name":"Virat","sport":"cricket","age":25,"id":121," lastScores":[77,72,23,57,54,36,74,17]>
This is not very readable as you cannot see how many attributes are there, what is their name and value, compare it to following formatted output which is printed using Jackson’s pretty print feature:
< "name" : "Virat", "sport" : "cricket", "age" : 25, "id" : 121, "lastScores" : [ 77, 72, 23, 57, 54, 36, 74, 17 ] >
It’s way better than earlier output, it’s much more readable. You can easily identify which one is the just simple name-value pair, which one is JSON array, and much more. Wondering, how to nicely print JSON String, just check out the example shown in the next section.
JSON String Format and Pretty Print Example
In this example, you will learn how to format the JSON String using Jackson’s Pretty Print feature. It’s easy to format JSON text, all you need to do is instead of just calling writeValueAsString() you need to first get defaultPrettyPrintWrite and then call writeValueAsString() method on that object. This will ensure that your JSON data will be nicely printed on console or log file i.e. wherever you print it.
import java.io.IOException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; /** * Java program to format JSON String using Jackson API. Jackson provides * nice pretty print feature to print JSON text as formatted output. * * @author Javin Paul */ public class JSONPrintDemo< public static void main(String args[]) < int[] recentScores = 77, 72, 23, 57, 54, 36, 74, 17>; Player cricketer = new Player("Virat", "cricket", 25, 121, recentScores); ObjectMapper mapper = new ObjectMapper(); try < System.out.println("Default JSON String:" + mapper.writeValueAsString(cricketer)); System.out.println("formatted JSON String \n" + mapper.defaultPrettyPrintingWriter().writeValueAsString(cricketer)); > catch (JsonGenerationException e) < e.printStackTrace(); > catch (JsonMappingException e) < e.printStackTrace(); > catch (IOException e) < e.printStackTrace(); > > > class Player < private String name; private String sport; private int age; private int id; private int[] lastScores; public Player(String name, String sport, int age, int id, int[] lastinnings) < this.name = name; this.sport = sport; this.age = age; this.id = id; lastScores = lastinnings; > public final String getName() < return name; > public final String getSport() < return sport; > public final int getAge() < return age; > public final int getId() < return id; > public final int[] getLastScores() < return lastScores; > public final void setName(String name) < this.name = name; > public final void setSport(String sport) < this.sport = sport; > public final void setAge(int age) < this.age = age; > public final void setId(int id) < this.id = id; > public final void setLastScores(int[] lastScores) < this.lastScores = lastScores; > @Override public String toString() < return "Player [name color: #fbde2d;">+ name + ", sport color: #fbde2d;">+ sport + ", age color: #fbde2d;">+ age + ", id color: #fbde2d;">+ id + "]"; > > Output Default JSON String:"name":"Virat","sport":"cricket","age":25, "id":121,"lastScores":[77,72,23,57,54,36,74,17]> formatted JSON String < "name" : "Virat", "sport" : "cricket", "age" : 25, "id" : 121, "lastScores" : [ 77, 72, 23, 57, 54, 36, 74, 17 ] >
Maven Dependency and JAR Files for Jackson
Since Jackson library is not part of core Java, you need to either specify Maven dependency in pom.xml file or you need to manually download those Jackson JAR files and put in your application’s classpath.
dependency> groupId>org.codehaus.jackson groupId> artifactId>jackson-xc artifactId> version>1.9.12 version> dependency>
JAR files
C:\.m2\repository\org\codehaus\jackson\jackson-xc\1.9.12\jackson-xc-1.9.12.jar
C:\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.12\jackson-core-asl-1.9.12.jar
C:\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.12\jackson-mapper-asl-1.9.12.jar
That’s all on how to format JSON String in Java using Jackson API’s pretty print facility. This example is very useful while printing JSON in log files to differentiate it from other String outputs. Formatted output not only stands out in logs but also they are easier to read but there is one drawback also. You cannot grep them in one line, you need to use the grep command with a context option to grep a couple of lines around matching to see full JSON output.
- How to parse large JSON documents in Java? (code example)
- How to read JSON String using the json-simple library? (code example)
- How to convert JSON String to Java Object for example? (solution)
- How to convert a JSON array to String Array in Java? (solution)
- 3 Ways to parse JSON String in Java? (tutorial)
- How to use Google Protocol Buffer in Java? (tutorial)
- How to use Gson to convert JSON to Java Object? (example)
Json string format in java
Learn Latest Tutorials
Preparation
Trending Technologies
B.Tech / MCA
Javatpoint Services
JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.
- Website Designing
- Website Development
- Java Development
- PHP Development
- WordPress
- Graphic Designing
- Logo
- Digital Marketing
- On Page and Off Page SEO
- PPC
- Content Development
- Corporate Training
- Classroom and Online Training
- Data Entry
Training For College Campus
JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week
Like/Subscribe us for latest updates or newsletter