找到關於 JSON 的 211 篇文章
2K+ 次瀏覽
可以註冊 `DeserializationProblemHandler` 類,以便在反序列化過程中遇到可能恢復的問題時被呼叫。我們可以透過實現 `DeserializationProblemHandler` 類的 `handleUnknownProperty()` 方法來處理 JSON 反序列化過程中生成的錯誤。語法:`public boolean handleUnknownProperty(DeserializationContext ctxt, JsonParser p, JsonDeserializer deserializer, Object beanOrClass, String propertyName) throws IOException` 示例:`import java.io.*; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.deser.*; public class DeserializationErrorTest { public static void main(String[] args) throws JsonMappingException, JsonGenerationException, IOException { String jsonString = "{\"id\":\"101\", \"name\":\"Ravi Chandra\", \"address\":\"Pune\", \"salary\":\"40000\" }"; ObjectMapper objectMapper = new ObjectMapper(); DeserializationProblemHandler deserializationProblemHandler = new UnMarshallingErrorHandler(); ... 閱讀更多
3K+ 次瀏覽
`ObjectMapper` 類提供在 Java 物件和匹配的 JSON 結構之間轉換的功能。我們可以使用樹狀資料結構來實現將由物件模型表示的 JSON 資料對映到特定的 Java 物件,該結構讀取並將整個 JSON 內容儲存在記憶體中。第一步,將 JSON 資料讀取到 `JsonNode` 物件中,然後透過呼叫 `ObjectMapper` 類的 `treeToValue()` 方法將其對映到另一個例項。語法:`public T treeToValue(TreeNode n, Class valueType) throws JsonProcessingException` 示例:`import java.io.*; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; public class JsonTreeModelDemo { public static void main(String[] args) throws JsonProcessingException, IOException { String jsonString ... 閱讀更多
753 次瀏覽
`JsonParserSequence` 是一個輔助類,可用於建立一個包含兩個以特定順序放置的子解析器的解析器。我們可以使用 `JsonParserSequence` 類的靜態方法 `createFlattened()` 建立一個序列。語法:`public static JsonParserSequence createFlattened(JsonParser first, JsonParser second)` 示例:`import java.io.*; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.core.util.*; public class JsonParserSequenceTest { public static void main(String[] args) throws JsonParseException, IOException { String jsonString1 = "{\"id\":\"101\", \"name\":\"Ravi Chandra\", \"address\":\"Pune\"}"; String jsonString2 = "{\"id\":\"102\", \"name\":\"Raja Ramesh\", \"address\":\"Hyderabad\", \"contacts\":[{\"mobile\":\"9959984805\", \"home\":\"7702144400\"}]}"; JsonFactory jsonFactory = new JsonFactory(); JsonParser jsonParser1 = jsonFactory.createParser(jsonString1); JsonParser jsonParser2 = jsonFactory.createParser(jsonString2); ... 閱讀更多
913 次瀏覽
`FieldNamingStrategy` 是一種在 Gson 中提供自定義欄位命名的機制。這允許客戶端程式碼將欄位名轉換為不受正常 Java 欄位宣告規則支援的特定約定。`translateName()` 方法將在每個欄位名前新增字串“pre_”。在下面的示例中,我們可以實現自定義 `FieldNamingStrategy`。示例:`import java.lang.reflect.Field; import com.google.gson.*; public class GsonFieldNamingStrategyTest { public static void main(String[] args) { Employee emp = new Employee(); emp.setEmpId(115); emp.setFirstName("Adithya"); emp.setLastName("Jai"); CustomFieldNamingStrategy customFieldNamingStrategy = new CustomFieldNamingStrategy(); ... 閱讀更多
361 次瀏覽
JSON 解析器的所有預設設定都可以使用 `JsonParser.Feature` 列舉來表示。`JsonParser.Feature.values()` 將返回可用於 `JsonParser` 的所有功能,但是可以使用 `JsonParser` 的 `isEnabled()` 方法確定特定解析器是否啟用或停用某個功能。語法:`public static enum JsonParser.Feature extends Enum` 示例:`import com.fasterxml.jackson.core.*; import java.io.*; public class JsonParserSettingsTest { public static void main(String[] args) throws IOException { String json = "[{\"name\":\"Adithya\", \"age\":\"30\"}, " + "{\"name\":\"Ravi\", \"age\":\"35\"}]"; JsonFactory jsonFactory = new JsonFactory(); JsonParser jsonParser = jsonFactory.createParser(json); for(JsonParser.Feature feature : JsonParser.Feature.values()) { ... 閱讀更多
873 次瀏覽
`JsonFactory` 類是執行緒安全的,負責建立寫入器和讀取器的例項。可以在列舉 `JsonFactory.Feature` 中找到可以開啟/關閉的設定列表,它包含靜態方法 `values()`,該方法返回此型別具有指定名稱的列舉常量。語法:`public static enum JsonFactory.Feature extends Enum` 示例:`import com.fasterxml.jackson.core.JsonFactory; public class JsonFactorySettingsTest { public static void main(String[] args) { JsonFactory jsonFactory = new JsonFactory(); for(JsonFactory.Feature feature : JsonFactory.Feature.values()) { boolean result = jsonFactory.isEnabled(feature); System.out.println(feature.name() + ":" + result); } } }` 輸出:`INTERN_FIELD_NAMES:true ... 閱讀更多
1K+ 次瀏覽
Gson 庫提供命名約定作為列舉 `FieldNamingPolicy` 的一部分。我們可以使用 `GsonBuilder` 類的 `setFieldNamingPolicy()` 方法設定欄位命名策略。`FieldNamingPolicy` 列舉常量:`IDENTITY` - 使用此命名策略,欄位名保持不變。`LOWER_CASE_WITH_DASHES` - 使用此命名策略,將 Java 欄位名從駝峰式形式修改為小寫欄位名,其中每個單詞由短橫線 (-) 分隔。`LOWER_CASE_WITH_UNDERSCORES` - 使用此命名策略,將 Java 欄位名從駝峰式形式修改為小寫欄位名,其中每個單詞由下劃線 (_) 分隔。`UPPER_CAMEL_CASE` - 使用此命名策略,... 閱讀更多
308 次瀏覽
`JsonGenerator` 類可以負責將 JSON 資料作為流寫入,而不是在記憶體中構建物件模型。可以在列舉 `JsonGenerator.Feature` 中找到可以開啟/關閉的設定列表,它包含靜態方法 `values()`,該方法返回包含此列舉型別的常量的陣列。語法:`public static enum JsonGenerator.Feature extends Enum` 示例:`import java.io.*; import com.fasterxml.jackson.core.*; public class JsonGeneratorSettingsTest { public static void main(String[] args) throws IOException { StringWriter writer = new StringWriter(); JsonFactory jsonFactory = new JsonFactory(); JsonGenerator jsonGenerator = jsonFactory.createGenerator(writer); for(JsonGenerator.Feature feature : JsonGenerator.Feature.values()) { ... 閱讀更多
631 次瀏覽
`JSONPointer` 是一種標準,它定義了一種字串語法,可用於訪問 JSON 文件中的特定鍵值。可以透過在 `Json` 類上呼叫靜態工廠方法 `createPointer()` 來建立 `JSONPointer` 的例項。在 `JSONPointer` 中,每個字串語法都以“/”為字首。我們可以透過在 `JsonPointer` 物件上呼叫 `getValue()` 方法來獲取鍵的值。JSON 檔案示例:`import javax.json.*; import java.io.*; public class JsonPointerTest { public static void main(String[] args) throws Exception { JsonReader jsonReader = Json.createReader(new FileReader("simple.json")); JsonStructure jsonStructure = jsonReader.read(); JsonPointer jsonPointer1 ... 閱讀更多
519 次瀏覽
`JsonPatch` 介面是一種用於儲存可以應用於目標 JSON 結構的一系列操作的格式。`JsonPath` 中可以儲存一些操作,例如新增、刪除、替換、複製、移動和測試,並對 JSON 結構進行操作。`JsonPatchBuilder` 介面可用於使用 `Json.createPatchBuilder()` 構造 JSON 補丁。JSON 檔案示例:`import java.io.*; import javax.json.Json; import javax.json.JsonPatch; import javax.json.JsonPatchBuilder; import javax.json.JsonReader; import javax.json.JsonStructure; public class JsonPatchTest { public static void main(String[] args) throws Exception { JsonPatchBuilder jsonPatchBuilder = Json.createPatchBuilder(); JsonPatch jsonPatch = jsonPatchBuilder.add("/postalCode", "500072").remove("/age").build(); JsonReader reader = Json.createReader(new FileReader("simple.json")); ... 閱讀更多
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP