Java'da JSON Nasıl Ayrıştırılır?
JSON , JavaScript Nesne Gösterimi anlamına gelir. Verileri depolamak ve taşımak için kullanımı kolay ve hafif açık standart dosya biçimidir. Bu yazıda Java'da JSON'un nasıl ayrıştırılacağını göreceğiz. JSON-java, GSON ve json-simple gibi JSON Kitaplıklarını kullanacağız.
Bugün Java'da bir JSON dizesini ayrıştırmak için üç json kitaplığı göreceğiz. Bunlar aşağıda listelenmiştir,
- JSON-Java
- GSON
- json-basit
Şimdi Java'da bir JSON'u ayrıştırmak için üç kitaplığın hepsinin birer birer örneğini göreceğiz.
JSON-Java kullanarak JOSN'yi Java'da ayrıştırma
JSON-java, Java için en basit JSON kitaplığından biridir.
JSONObject
Burada JSON-java kütüphanesinin sınıfını kullanacağız .
JSONObject
string kabul eden bir yapıcıya sahiptir . Bir JSON dizesini ayrıştırmak için bu yapıcıyı kullanacağız.
JSON-java Docs'a başvurabilirsiniz .
Maven
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20201115</version>
</dependency>
Gradle:
import org.json.JSONArray;
import org.json.JSONObject;
/**
* A program to parse JSON strin in Java using JSON-Java
* @author Gaurav Kukade at coderolls.com
*/
public class ParseJSONUsingJSONJava {
public static void main(String[] args) {
String jsonString = "{"
+ " "name": "coderolls","
+ " "type": "blog","
+ " "address": {"
+ " "street": "1600 Pennsylvania Avenue NW","
+ " "city": "Washington","
+ " "state": "DC""
+ " },"
+ " "employees": ["
+ " {"
+ " "firstName": "John","
+ " "lastName": "Doe""
+ " },"
+ " {"
+ " "firstName": "Anna","
+ " "lastName": "Smith""
+ " },"
+ " {"
+ " "firstName": "Peter","
+ " "lastName": "Jones""
+ " }"
+ " ]"
+ "}";
System.out.println("Parsing the json string in java using JSON-Java......n");
//add jsonString to the constructor
JSONObject coderollsJSONObject = new JSONObject(jsonString);
//now we can access the values
String name = coderollsJSONObject.getString("name");
System.out.println("Name: "+name+"n");
//we can get the JSON object present as value of any key in the parent JSON
JSONObject addressJSONObject = coderollsJSONObject.getJSONObject("address");
//access the values of the addressJSONObject
String street = addressJSONObject.getString("street");
System.out.println("Street: "+street+"n");
//we can get the json array present as value of any key in the parent JSON
JSONArray employeesJSONArray = coderollsJSONObject.getJSONArray("employees");
System.out.println("Printing the employess json array: n"+employeesJSONArray.toString()+"n");
//we can get individual json object at an index from the employeesJSONArray
JSONObject employeeJSONObject = employeesJSONArray.getJSONObject(0);
String firstName = employeeJSONObject.getString("firstName");
System.out.println("First Name of the employee at index 0: "+firstName);
}
}
ParseJSONUsingJSON.Java kodunu alın
JOSN'yi Java'da Gson kullanarak ayrıştırma
Gson, Java nesnelerini Google'da geliştirilen JSON'a seri hale getirmek ve seri durumundan çıkarmak için kullanılan açık kaynaklı bir Java kitaplığıdır.
Böylece bir JSON dizesini eşdeğer bir Java nesnesine dönüştürmek için kullanabiliriz.
Burada JsonObject
Gson kütüphanesinin sınıfını kullanacağız.
JsonObject belgelerine başvurabilirsiniz .
Maven:
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
Gradle:
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
/**
* A program to parse JSON strin in Java using Gson
* @author Gaurav Kukade at coderolls.com
*/
public class ParseJSONUsingGSON {
public static void main(String[] args) {
//take json as string
String jsonString = "{"
+ " "name": "coderolls","
+ " "type": "blog","
+ " "address": {"
+ " "street": "1600 Pennsylvania Avenue NW","
+ " "city": "Washington","
+ " "state": "DC""
+ " },"
+ " "employees": ["
+ " {"
+ " "firstName": "John","
+ " "lastName": "Doe""
+ " },"
+ " {"
+ " "firstName": "Anna","
+ " "lastName": "Smith""
+ " },"
+ " {"
+ " "firstName": "Peter","
+ " "lastName": "Jones""
+ " }"
+ " ]"
+ "}";
System.out.println("Parsing the json string in java using Gson......n");
Gson gson = new Gson();
//get json object from the json string
JsonObject coderollsJsonObject = gson.fromJson(jsonString, JsonObject.class);
//now we can access the values
String name = coderollsJsonObject.get("name").getAsString();
System.out.println("Name: "+name+"n");
//we can get the JSON object present as value of any key in the parent JSON
JsonObject addressJsonObject = coderollsJsonObject.get("address").getAsJsonObject();
//access the values of the addressJSONObject
String street = addressJsonObject.get("street").getAsString();
System.out.println("Street: "+street+"n");
//we can get the json array present as value of any key in the parent JSON
JsonArray employeesJsonArray = coderollsJsonObject.get("employees").getAsJsonArray();
System.out.println("Printing the employess json array: n"+employeesJsonArray.toString()+"n");
//we can get individual json object at an index from the employeesJSONArray
JsonObject employeeJsonObject = employeesJsonArray.get(0).getAsJsonObject();
String firstName = employeeJsonObject.get("firstName").getAsString();
System.out.println("First Name of the employee at index 0: "+firstName);
}
}
ParseJSONUsingGSON.java kodunu alın
Java'da json-simple kullanarak JOSN'yi ayrıştırma
JSON.simple, JSON için basit bir Java araç takımıdır. JSON metnini kodlamak veya kodunu çözmek için JSON.simple kullanabilirsiniz.
Maven:
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
Gradle:
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
/**
* A program to parse JSON strin in Java using json-simple
* @author Gaurav Kukade at coderolls.com
*/
public class ParseJSONUsingJsonSimple {
public static void main(String[] args) {
//take json as string
String jsonString = "{"
+ " "name": "coderolls","
+ " "type": "blog","
+ " "address": {"
+ " "street": "1600 Pennsylvania Avenue NW","
+ " "city": "Washington","
+ " "state": "DC""
+ " },"
+ " "employees": ["
+ " {"
+ " "firstName": "John","
+ " "lastName": "Doe""
+ " },"
+ " {"
+ " "firstName": "Anna","
+ " "lastName": "Smith""
+ " },"
+ " {"
+ " "firstName": "Peter","
+ " "lastName": "Jones""
+ " }"
+ " ]"
+ "}";
System.out.println("Parsing the json string in java using json-simple......n");
JSONParser parser = new JSONParser();
JSONObject coderollsJSONObject = new JSONObject();
try {
coderollsJSONObject = (JSONObject) parser.parse(jsonString);
} catch (ParseException e) {
e.printStackTrace();
}
//now we can access the values
String name = (String) coderollsJSONObject.get("name");
System.out.println("Name: "+name+"n");
//we can get the JSON object present as value of any key in the parent JSON
JSONObject addressJSONObject = (JSONObject) coderollsJSONObject.get("address");
//access the values of the addressJSONObject
String street = (String) addressJSONObject.get("street");
System.out.println("Street: "+street+"n");
//we can get the json array present as value of any key in the parent JSON
JSONArray employeesJSONArray = (JSONArray) coderollsJSONObject.get("employees");
System.out.println("Printing the employess json array: n"+employeesJSONArray.toString()+"n");
//we can get individual json object at an index from the employeesJSONArray
JSONObject employeeJSONObject = (JSONObject) employeesJSONArray.get(0);
String firstName = (String) employeeJSONObject.get("firstName");
System.out.println("First Name of the employee at index 0: "+firstName);
}
}
ParseJSONUsingJsonSimple.java kodunu alın.
Her üç kitaplık da json dizesinden bir JSON nesnesi oluşturmanıza izin verir, ancak JSON-Java'nın kullanımının kolay olduğunu gördüm.
Daha fazla eğitim videosu bulmak için YouTube kanalım 'coderolls'u ziyaret edebilirsiniz .
Kaynak