Converter String em objecto JSON em Java
-
Utilize
JSONObject
para Converter uma String em objecto JSON em Java - Utilizar o Google Gson para Converter uma String para Objecto JSON em Java
-
Utilize
Jackson
para converter uma string para um objecto JSON
Neste tutorial, vamos discutir como converter uma string num objecto JSON em Java. Temos diferentes bibliotecas disponíveis para realizar esta tarefa.
Utilize JSONObject
para Converter uma String em objecto JSON em Java
O JSONObject
pode analisar um string num objecto semelhante a um mapa. Armazena pares de valores chave não ordenados. A biblioteca JSON-java, vulgarmente conhecida como org.json
, é utilizada aqui com a necessária dependência maven. A dependência maven que utilizámos é dada abaixo.
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20201115</version>
</dependency>
Para analisar uma string JSON a JSONObject
, passamos a string ao construtor, como se mostra abaixo.
import org.json.JSONException;
import org.json.JSONObject;
public class StringToJsonObject {
public static void main(String[] args) {
try {
String str = "{\"name\":\"John\",\"age\":\"30\"}";
JSONObject jsonObject = new JSONObject(str);
System.out.println("OBJECT : " + jsonObject.toString());
} catch (JSONException err) {
System.out.println("Exception : " + err.toString());
}
}
}
Resultado:
OBJECT : {"age":"30","name":"John"}
Utilizar o Google Gson para Converter uma String para Objecto JSON em Java
Google Gson é uma biblioteca de java para serializar/deserializar Objectos Java para o JSON ou vice-versa. Também pode ser utilizada para converter a string Java para o seu objecto JSON equivalente.
A dependência maven que é necessária para esta biblioteca é dada abaixo.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
Neste código, criamos primeiro uma instância de Gson utilizando GsonBuilder, chamando ao seu método create()
. Podemos também activar várias configurações no builder
. Como mostrado abaixo, utilizamos o seu método setPrettyPrinting()
. Como o nome sugere, imprime bem a saída JSON.
Mais tarde utilizámos o método fromJson
do objecto Gson, que analisa a string JSON para o objecto User
. O método toJson()
utiliza Gson para converter o objecto User
de volta para a string JSON. Assim, a string str
é convertida num objecto JSON utilizando a biblioteca Gson.
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonIOException;
public class StringToJsonObject {
public static void main(String[] args) {
try {
String str = "{\"name\":\"John\", \"age\":21 , \"place\":\"Nevada\"}";
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 + "]";
}
}
Resultado:
User[John, 21, Nevada] User Object as string : {
"name" : "John", "age" : 21, "place" : "Nevada"
}
Utilize Jackson
para converter uma string para um objecto JSON
Jackson é também conhecido como a biblioteca Java JSON. O ObjectMapper
é utilizado para mapear JSON em Objectos Java ou Objectos Java em JSON. A dependência maven utilizada para esta biblioteca é mostrada abaixo.
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.3</version>
</dependency>
O Jackson tem um modelo em árvore incorporado para representar o Objecto JSON. JsonNode
é a classe que representa o modelo em árvore. A instância ObjectMapper mapper
parses JSON num modelo de árvore JsonNode
chamado 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 = "{\"name\":\"John\", \"age\":21 , \"place\":\"Nevada\"}";
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();
}
}
}
Resultado:
node{"name":"John","age":21,"place":"Nevada"}
name: John, place: 21
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtigo relacionado - Java String
- Como converter a string Java em Byte
- Como converter Byte Array em Hex String em Java
- Como realizar a conversão de string em array de string em Java
- Como remover string de string em Java
- Comparar Strings em Java
- Gerar String Aleatória em Java