使用Java构造和解析JSON数据的两种方法有:使用Java的JSONObject和JSONArray类和使用第三方库Gson。
使用Java的JSONObject和JSONArray类
在使用该方法前,需要先导入JSON库,例如org.json库。
构造JSON数据
使用JSONObject和JSONArray类可以方便地构造JSON数据。JSONObject类用于像一个映射表一样管理属性。JSONArray类用于保存数组。
以下示例展示了如何使用JSONObject和JSONArray类构造JSON数据:
import org.json.*;
public class JSONExample {
public static void main(String[] args) {
JSONObject obj = new JSONObject();
obj.put("name", "John");
obj.put("age", new Integer(25));
JSONArray list = new JSONArray();
list.put("msg 1");
list.put("msg 2");
list.put("msg 3");
obj.put("messages", list);
System.out.println(obj);
}
}
上述示例中,建立了一个JSON对象obj,并且设定属性值"John"和25分别对应"name"和"age"两种属性。同时,建立了一个JSON数组"messages",并在数组内添加了三个元素的字符串类型。
使用JSONObject的put()方法,可以将键值对存放到JSON对象中。使用JSONArray的put()方法,可以将元素加入JSON数组。最后,直接使用System.out.println输出JSON对象即可。
解析JSON数据
JSON数据可以用JSONObject或JSONArray来解析。以下示例将使用JSONObject来解析JSON数据:
import org.json.*;
public class JSONExample {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":25, \"messages\":[\"msg 1\",\"msg 2\",\"msg 3\"]}";
JSONObject obj = new JSONObject(jsonString);
String name = obj.getString("name");
int age = obj.getInt("age");
JSONArray messages = obj.getJSONArray("messages");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Messages: " + messages);
}
}
上述示例中,使用JSONObject的构造函数,将JSON字符串转换为Java对象,并使用getString()方法和getInt()方法来获取"name"和"age"两个属性的值。同时,使用getJSONArray()方法来获取"messages"数组的值。
使用第三方库Gson
Gson是Google开发的一款Java库,可用于将Java对象转换为JSON格式,以及将JSON格式转换为对应的Java对象。
构造JSON数据
在使用Gson构造JSON数据之前,需要先导入Gson库。
以下示例展示了如何使用Gson构造JSON数据:
import com.google.gson.*;
public class GsonExample {
public static void main(String[] args) {
JsonObject obj = new JsonObject();
obj.addProperty("name", "John");
obj.addProperty("age", 25);
JsonArray list = new JsonArray();
list.add(new JsonPrimitive("msg 1"));
list.add(new JsonPrimitive("msg 2"));
list.add(new JsonPrimitive("msg 3"));
obj.add("messages", list);
Gson gson = new Gson();
String json = gson.toJson(obj);
System.out.println(json);
}
}
上述示例中,建立一个JsonObject对象,并设定属性值"John"和25分别对应"name"和"age"两种属性。同时,建立一个JsonArray对象"messages",并向数组中添加了三个元素的字符串类型。
使用Gson的toJson()方法,将JsonObject转换成对应的JSON格式字符串。
解析JSON数据
使用Gson库可以方便地将JSON字符串转换为Java对象。以下示例展示了如何使用Gson解析JSON数据:
import com.google.gson.*;
public class GsonExample {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":25, \"messages\":[\"msg 1\",\"msg 2\",\"msg 3\"]}";
Gson gson = new Gson();
JsonObject obj = gson.fromJson(jsonString, JsonObject.class);
String name = obj.get("name").getAsString();
int age = obj.get("age").getAsInt();
JsonArray messages = obj.getAsJsonArray("messages");
for(JsonElement message : messages) {
System.out.println(message.getAsString());
}
}
}
上述示例中,使用Gson的fromJson()方法,将JSON字符串转换成Java对象,同时使用get()方法获取对应的属性值。
使用getAsJsonArray()方法获取数组类型属性值。循环遍历JsonArray并逐一获取元素值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Java构造和解析Json数据的两种方法(详解一) - Python技术站