在Java中,有几种不同的方式可以进行JSON的解析和生成。以下是使用Java进行JSON解析和生成的基本步骤:
解析JSON:
-
使用内置JSON解析库(例如,org.json):
java复制代码
import org.json.JSONObject; | |
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; | |
JSONObject jsonObject = new JSONObject(jsonString); | |
String name = jsonObject.getString("name"); | |
int age = jsonObject.getInt("age"); | |
String city = jsonObject.getString("city"); |
- 使用第三方库(例如,Jackson或Gson):
-
Jackson:
java复制代码
import com.fasterxml.jackson.databind.ObjectMapper; | |
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; | |
ObjectMapper mapper = new ObjectMapper(); | |
Person person = mapper.readValue(jsonString, Person.class); |
其中,Person
是一个Java类,其属性与JSON中的键相匹配。
-
Gson:
java复制代码
import com.google.gson.Gson; | |
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; | |
Gson gson = new Gson(); | |
Person person = gson.fromJson(jsonString, Person.class); |
同样,Person
是一个Java类,其属性与JSON中的键相匹配。
生成JSON:
-
使用内置JSON库(例如,org.json):
java复制代码
import org.json.JSONObject; | |
JSONObject jsonObject = new JSONObject(); | |
jsonObject.put("name", "John"); | |
jsonObject.put("age", 30); | |
jsonObject.put("city", "New York"); |
- 使用第三方库(例如,Jackson或Gson):
-
Jackson:
java复制代码
import com.fasterxml.jackson.databind.ObjectMapper; | |
import com.fasterxml.jackson.databind.SerializationFeature; | |
import java.io.IOException; | |
import java.util.HashMap; | |
import java.util.Map; | |
ObjectMapper mapper = new ObjectMapper(); | |
mapper.enable(SerializationFeature.INDENT_OUTPUT); // 可选,用于格式化输出 | |
Map<String, Object> personMap = new HashMap<>(); | |
personMap.put("name", "John"); | |
personMap.put("age", 30); | |
personMap.put("city", "New York"); | |
String jsonString = mapper.writeValueAsString(personMap); |
-
Gson:
java复制代码
import com.google.gson.Gson; | |
import java.util.Map; | |
import java.util.HashMap; | |
Gson gson = new Gson(); | |
Map<String, Object> personMap = new HashMap<>(); | |
personMap.put("name", "John"); | |
personMap.put("age", 30); | |
personMap.put("city", "New York"); | |
String jsonString = gson.toJson(personMap); // 将Java对象转换为JSON字符串。注意:Gson库中没有提供格式化输出的选项。如果你需要格式化输出,可以考虑使用JsonFormat类或者第三方库。 |