【什么是Java序列化和反序列化,如何实现Java序列化】教程文章相关的互联网学习教程文章

java – 如何在序列化/反序列化JSON时擦除一种实例?【代码】

我使用fasterxml来序列化/反序列化JSONpublic class A {String field;B b; }public class B {int n; }我想以这样的格式获得JSON{"field": "abc","n": 123 }可能吗?解决方法:你可以简单地使用@JsonUnwrapped.无需自定义序列化程序:public class A {public String field;@JsonUnwrappedpublic B b; }public class B {public int n; }注意字段的可访问性,否则它将无法工作.

java – Spring在@RequestBody中反序列化一个LocalDate与@RequestParam中的一个不同 – 为什么,它们可以相同吗?【代码】

问题:Spring似乎对LocalDate使用不同的反序列化方法,具体取决于它是出现在@RequestBody还是请求@ReqestParam中 – 这是否正确,如果是这样,有没有办法在整个应用程序中将它们配置为相同? 背景:在我的@RestController中,我有两个方法 – 一个GET和一个POST. GET期望一个类型为LocalDate的请求参数(“date”); POST期望一个JSON对象,其中一个键(“日期”)的类型为LocalDate.他们的签名类似于以下内容:@RequestMapping(value = "/e...

java – 在客户端使用额外变量进行序列化和反序列化,但版本ID相同【代码】

假设我在服务器端有一个带有两个变量的A类.class A implements Serializable {public static final long serialVersionUID = 1234;String a;String b; }在客户端,我有相同的类,有三个变量,但版本ID相同.class A implements Serializable {public static final long serialVersionUID = 1234;String a;String b;String c; }这里发生了什么?对它的行为有点困惑.解决方法:这是一个stream-compatible change.如果没有它的一方收到额外...

java – 如何反序列化未知类的对象

我需要打印序列化Java对象的内容(例如,从缓存中检索的java.io.Serializable POJO),而不需要先验地知道它的类. 更具体一点,我不需要使用经典的ObjectInputStream来实例化一个新对象,我只需要获得对象的简单的人类可读表示(最好是JSON)而不需要在类路径中加载它的类. 换句话说,我需要将byte [](原始序列化对象)转换为JSON字符串,而无需重新实现ObjectInputStream.解决方法:这个看起来很有希望:https://github.com/unsynchronized/jd...

java – 使用匿名类进行杰克逊反序列化【代码】

我一整天都在寻找可以解决这个问题的事情,但到目前为止我还没有好运. 我的问题很简单:如何使用Jackson正确反序列化匿名对象.private interface Interface1 {int getValue(); }public static void testAnonymousObject() throws IOException {ObjectMapper mapper = new ObjectMapper();mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);mapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE);mapper.se...

使用Java处理JSON [-Jackson-].无法反序列化【代码】

我有一个JSON字符串:"[{\"is_translator\":false,\"follow_request_sent\":false,\"statuses_count\":1058}]"在字符串上使用PHP的json_decode()并执行print_r,输出:Array ([0] => stdClass Object([is_translator] => [follow_request_sent] => [statuses_count] => 1058))这表明它是有效的JSON. 但是使用Jackson Library会出错:Exception in thread “main”org.codehaus.jackson.map.JsonMappingException: Can not deseriali...

java – GSON反序列化字符串或字符串数​​组【代码】

我在反序列化包含0到多个子对象的对象时遇到了一些麻烦,这些对象可以包含字符串或特定值的字符串数组. 这是一个JSON示例{ "name": "process name", "tasks": [{"name": "task 1","fields": [{"name": "field 1","value": "123abc"},{"name": "field 2","value": ["value 1", "value 2"]}]},{"name": "task 2","fields": []}] }我有一个Java实体设置来匹配这个结构,如下所示:public class Process {public Process() {}public Stri...

Java 序列化和反序列化(二)Serializable 源码分析 - 1【图】

目录 Java 序列化和反序列化(二)Serializable 源码分析 - 1 1. Java 序列化接口Java 序列化和反序列化(二)Serializable 源码分析 - 1 在上一篇文章中讲解了一下 Serializable 的大致用法,本节重点关注 Java 序列化的实现,围绕 ObjectOutputStream#writeObject 方法展开。 1. Java 序列化接口 Java 为了方便开发人员将 Java 对象进行序列化及反序列化提供了一套方便的 API 来支持。其中包括以下接口和类:Serializable 和 Ext...

java – 如何反序列化EnumMap【代码】

我正在试图弄清楚如何反序列化EnumMap.到目前为止,我一直在使用Gson库来获取其他所有内容并且已经成功.这证明是困难的. 这是一个基本想法:import java.lang.reflect.Type; import com.google.gson.reflect.TypeToken; import com.google.gson.Gson;enum FRUIT {APPLE, BANANA } EnumMap<FRUIT, String> fruitMap; Gson gson = new Gson();public void setFruitMap(String jsonString){Type typeToken = new TypeToken<EnumMap<FRU...

java – 更改gson中的默认枚举序列化和反序列化【代码】

我正在以一种略微“不同”的方式使用Gson,我想知道以下是否可行…… 我想更改枚举的默认序列化/反序列化格式,以便它使用完全限定的类名,但在所述枚举上保持对@SerializedName注释的支持.基本上,鉴于以下枚举…package com.example; public class MyClass {public enum MyEnum {OPTION_ONE, OPTION_TWO, @SerializedName("someSpecialName")OPTION_THREE} }我想以下是真实的……gson.toJson(MyEnum.OPTION_ONE) == "com.example.MyC...

java – 使用Avro嵌套的特定类型反序列化【代码】

以下是我用于生成Avro类的架构的相关部分{"namespace": "com.namespace.kafka.event","type": "record","name": "RecordName","fields": [// some fields declared...{"name": "products", "type": { "type": "array", "items": {"name": "productInfo","type": "record","fields" : [{"name": "productId", "type": "int"},{"name": "productScore", "type": "float"}]}} },// some more fields declared ...]} 我能够为这个模式生...

java – 用杰克逊反序列化到Map【代码】

我有以下JSON:{"parameters": [{"value": "somevalue","key": "somekey"},{"value": "othervalue","key": "otherkey"}] }请注意,此响应的合同保证密钥是唯一的. 我想将其分解为以下类:public class Response {public Map<String, String> parameters;}我如何使用杰克逊图书馆这样做?解决方法:您需要注册反序列化器:ObjectMapper mapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); module.addDeserializ...

java – Json使用jackson进行动态反序列化【代码】

我已经看过“Jackson dynamic property names”的问题,但它并没有真正回答我的问题. 我想反序列化这样的东西:public class Response<T> {private String status;private Error error;private T data; }但是数据可以具有不同的名称,因为存在不同的服务并且返回具有不同数据的相同结构.例如’用户’和’合同’:{response: {status: "success",user: {...}} }要么{response: {status: "failure",error : {code : 212, message : "Un...

序列化/反序列化LinkedHashMap(android)java【代码】

所以我想将LinkedHashMap传递给intent.//SEND THE MAP Intent singlechannel = new Intent(getBaseContext(),singlechannel.class); singlechannel.putExtra("db",shows1);//perase to startActivity(singlechannel);//GET THE MAP LinkedHashMap<String,String> db = new LinkedHashMap<String,String>(); db=(LinkedHashMap<String,String>) getIntent().getSerializableExtra("db");这个就像HashMap的魅力一样.但是使用Linke...

java – GSON不反序列化对外部类的引用【代码】

在我的Java应用程序中,我定义了两个类,称为A和B,其中B是A的内部类.两个类都定义为可序列化public class A implements Serializable {int attrParent;List<B> items = new ArrayList<B>();public void setAttrParent(int attrParent) {this.attrParent = attrParent;}public int getAttrParent() {return attrParent;}public class B implements Serializable {private int attr;public void setAttr(int attr) {this.attr = attr;}...

反序列化 - 相关标签