找到 2637 篇文章 关于 Java

如何在 Java 中处理 JSON 反序列化过程中产生的错误?

raja
更新于 2020年7月7日 13:18:11

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(); ... 阅读更多

如何在 Java 中使用 Jackson 对象模型映射 JSON 数据?

raja
更新于 2020年7月7日 13:04:14

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 ... 阅读更多

如何在 Java 中使用 JsonParserSequence 按顺序合并两个 JSON 字符串?

raja
更新于 2020年7月7日 13:06:13

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); ... 阅读更多

如何在 Java 中使用 Gson 实现自定义 FieldNamingStrategy?

raja
更新于 2020年7月7日 12:39:14

914 次浏览

`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(); ... 阅读更多

如何在 Java 中使用 Jackson 获取 JSONParser 的默认设置?

raja
更新于 2020年7月7日 12:18:20

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()) { ... 阅读更多

如何在 Java 中使用 Jackson 获取 JsonFactory 设置?

raja
更新于 2020年7月7日 12:12:33

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 ... 阅读更多

在 Java 中使用 Gson 的 FieldNamingPolicy 枚举?

raja
更新于 2020年7月7日 12:04:50

1K+ 次浏览

Gson 库提供命名约定作为枚举 `FieldNamingPolicy` 的一部分。我们可以使用 `GsonBuilder` 类的 `setFieldNamingPolicy()` 方法设置字段命名策略。`FieldNamingPolicy` 枚举常量:`IDENTITY` - 使用此命名策略,字段名保持不变。`LOWER_CASE_WITH_DASHES` - 使用此命名策略,将 Java 字段名从驼峰式形式修改为小写字段名,每个单词之间用短划线 (-) 分隔。`LOWER_CASE_WITH_UNDERSCORES` - 使用此命名策略,将 Java 字段名从驼峰式形式修改为小写字段名,每个单词之间用下划线 (_) 分隔。`UPPER_CAMEL_CASE` - 使用此命名策略,... 阅读更多

如何在 Java 中使用 Jackson 获取 JsonGenerator 设置?

raja
更新于 2020年7月7日 12:05:39

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()) { ... 阅读更多

如何在 Java 中使用 JsonPointer 接口获取键的值?

raja
更新于 2020年7月7日 11:58:26

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 ... 阅读更多

Java 中 JsonPatch 接口的重要性?

raja
更新于 2020年7月7日 11:55:50

519 次浏览

JsonPatch 接口是一种用于存储可以应用于目标 JSON 结构的一系列操作的格式。JsonPath 中可以存储一些操作,例如添加、删除、替换、复制、移动和测试,并对 JSON 结构进行操作。JsonPatchBuilder 接口可用于使用 Json.createPatchBuilder() 构造 JSON patch。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"));     ... 阅读更多

广告