有时候当需要远程传送一个LIST<Object>对象的时候会报无法序列化
的错误。解决办法可新建一个如下类:
/**
*
*/
package com.rodrigue.nepo.core.model;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
/**
* @author LEO.ZHOU
* DATE 2009-12-9
*/
public class SerializableList<E> extends ArrayList<E> implements Externalizable{
public SerializableList() {
super();
}
public SerializableList(Collection<? extends E> c) {
super(c);
}
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
int elementCount = in.readInt();
this.ensureCapacity(elementCount);
for (int i = 0; i < elementCount; i++) {
this.add((E) in.readObject());
}
}
public void writeExternal(ObjectOutput out) throws IOException {
out.writeInt(size());
for (int i = 0; i < size(); i++) {
if (get(i) instanceof Serializable) {
out.writeObject(get(i));
} else {
out.writeObject(null);
}
}
}
}
然后用SerializableList类代替你使用的ArrayList类即可实现远程传输。
分享到:
相关推荐
要将`List<Object>`转换为JSON,首先确保你的`Object`类已经正确实现了`Serializable`接口,这样Jackson才能正确地序列化它。然后,你可以使用`ObjectMapper`类来完成转换。下面是一个示例代码: ```java import ...
一、List<T>对象中的T是值类型的情况(int 类型等) 对于值类型的List直接用以下方法就可以复制: List<T> oldList = new List<T>(); oldList.Add(..); List<T> newList = new List<T>(oldList); 二、List<T>对象...
C#中解析JSON通常使用的是Json.NET库,这是一个非常流行且功能强大的开源库,可以方便地进行JSON序列化和反序列化。如果你还没有安装,可以通过NuGet包管理器添加Json.NET到你的项目中。 使用Json.NET解析JSON为...
Vector<Object> vector = new Vector<>(); ``` 在C++中,STL中的`vector`类也有类似的默认构造函数: ```cpp std::vector<int> vec; ``` 2. **指定容量初始化**: 有时我们可能知道Vector将要存储的元素数量...
在Java中,将JSON字符串转换为Map或List是常见的操作,这在处理服务器返回的数据或者进行数据序列化时非常有用。 JSON字符串的结构主要包括对象(键值对的集合,用花括号{}包围)和数组(有序元素的集合,用方括号...
这个过程通常涉及到对象序列化,即将Java对象转换为JSON格式的字符串,以便在网络间传输或者存储在文件中。下面将详细阐述如何实现这个转换。 首先,我们需要了解`Bean`类。在Java中,`Bean`是一种遵循特定规范的...
Map<String, Object> obj = yaml.load(inputStream); System.out.println(obj); 基本用法 SnakeYAML库提供了一种基本的YAML解析和序列化方法。例如,使用Yaml类的load()方法可以将YAML文档加载到一个Map对象中。...
当我们需要在Web服务中传递复杂对象,如List、Map或List<Map>时,可以使用Java的序列化机制。在CXF中,可以通过JAXB(Java Architecture for XML Binding)将Java对象转换为XML格式,以便在网络间传输。例如,如果你...
同样,我们也可以将JSON字符串反序列化回List<Student>: ```csharp string jsonString = "{\"Id\":1,\"Name\":\"张三\",\"Age\":20}"; // 假设这是一个JSON字符串 List<Student> deserializedStudents = ...
文中提到使用JsonConfig来设置JsonPropertyFilter,这样可以在序列化过程中过滤掉不需要的属性或对象。这是一种更加精细的控制方式,可以避免在JSON中暴露不应该公开的数据。 5. Hibernate配置关系映射: 为了更好...
JAXB允许我们在Java类和XML元素之间建立映射,从而实现XML到Java对象的自动序列化和反序列化。首先,我们需要创建一个对应的Java类,该类的字段将与XML元素对应。 3. **创建Java模型类** 假设我们的XML文件具有...
24<br><br>0051 变量的作用域 25<br><br>2.5 其他 26<br><br>0052 有效使用this对象 26<br><br>0053 如何声明变量 26<br><br>0054 如何声明相同类型的多个变量 26<br><br>0055 利用Object变量传递参数 ...
List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> map1 = new HashMap<>(); map1.put("name", "大憨"); map1.put("age", 24); list.add(map1); Map<String, Object> map2 = new HashMap<>...
Map<String, Object> myMap = new HashMap<>(); // 填充Map... Gson gson = new Gson(); String jsonString = gson.toJson(myMap); ``` 2. **JSON转Map** 将JSON字符串解析回`Map`,同样使用`Gson`库,但...
string xmlString = "<MyData><KeyValue><item key=\"key1\">value1</item><item key=\"key2\">value2</item></KeyValue><TagValue>tagValue</TagValue><ObjectArray><Object><NestedTag>nestedValue1</NestedTag></...
标识字段和序列(Identity columns and Sequences)<br>5.1.4.5. 程序分配的标识符(Assigned Identifiers)<br>5.1.5. composite-id 联合ID<br>5.1.6. 识别器(discriminator)<br>5.1.7. 版本(version)(可选)...
标识字段和序列(Identity columns and Sequences)<br>5.1.4.5. 程序分配的标识符(Assigned Identifiers)<br>5.1.5. composite-id 联合ID<br>5.1.6. 识别器(discriminator)<br>5.1.7. 版本(version)(可选)...
这里,`TypeToken`用于保存类型信息,使得Gson在反序列化时能正确识别List中的元素类型。 总结起来,通过谷歌的Gson库,我们可以轻松地将JSON字符串解析为Java对象,同时结合泛型和TypeToken可以处理更复杂的数据...
Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); JSONObject jsonObject = new JSONObject(map); ``` 然后,你可以通过Ajax发送这个JSON字符串到服务器。例如...
例如,假设你有一个`TList<T>`类型的变量`Items`,你可以这样序列化: ```delphi uses System.JSON; var JSONValue: TJSONObject; JSONArray: TJSONArray; Item, ItemJSON: TJSONValue; I: Integer; ...