`
nannan408
  • 浏览: 1783457 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java 序列化和反序列化(针对字符串的例子)

 
阅读更多
1.前言.
   摘自:http://blog.csdn.net/linminqin/article/details/7654276
2.例子.
package lmiky.test.obj;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SerTest {

	/**
	 * 方法说明
	 * @author lmq0382 
	 * @date 2012-6-11
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("number", "123");
		map.put("name", "test");
		list.add(map);
		HashMap<String, String> map2 = new HashMap<String, String>();
		map2.put("number", "1232");
		map2.put("name", "test2");
		list.add(map2);
		
		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
		ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
		objectOutputStream.writeObject(list);  
		String serStr = byteArrayOutputStream.toString("ISO-8859-1");
		serStr = java.net.URLEncoder.encode(serStr, "UTF-8");
		
		objectOutputStream.close();
		byteArrayOutputStream.close();
		
		System.out.println(serStr);
				
		String redStr = java.net.URLDecoder.decode(serStr, "UTF-8");
		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(redStr.getBytes("ISO-8859-1"));
		ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream); 
		List<HashMap<String, String>> newList = (List<HashMap<String, String>>)objectInputStream.readObject(); 
		objectInputStream.close();
		byteArrayInputStream.close();
		

		for(Map m : newList) {
			System.out.println(m.get("number") + " " + m.get("name"));
		}
	}

}


分享到:
评论

相关推荐

    一个基于java jaxb的序列化例子,非常简单易懂

    Java JAXB(Java Architecture for XML Binding)是Java平台上的一个标准组件,用于XML和Java对象之间的绑定,实现了XML的序列化和反序列化。这个技术使得开发者可以方便地将Java对象转换为XML文档,同时也可以从XML...

    java序列化原理与算法

    Java序列化机制是Java语言中一项非常实用的功能,它极大地简化了对象在网络传输和持久化过程中的处理。通过深入了解序列化的原理和算法流程,开发者可以更好地利用这项技术解决实际问题。在未来的学习和工作中,掌握...

    Json序列化与反序列化

    反之,将编程语言中的数据结构转换回JSON字符串则称为反序列化。 **一、Json序列化** 序列化是将数据对象转化为JSON格式的过程,以便在网络上传输或保存到文件中。不同的编程语言提供了不同的库来支持JSON序列化。...

    Json反序列化

    反序列化是将JSON格式的字符串转换为程序可直接使用的对象的过程,这对于处理网络请求返回的数据至关重要。在本篇文章中,我们将深入探讨JSON反序列化的概念、原因以及在实际开发中的应用。 一、什么是JSON反序列化...

    JSON序列化反序列化带List

    在Delphi编程环境中,处理JSON数据通常涉及到序列化和反序列化操作,即将对象转换为JSON字符串,以及将JSON字符串解析回对象。本文将深入探讨如何在Delphi中进行JSON序列化与反序列化,特别是涉及List类型的数据。 ...

    使用json-lib完成json的序列化和反序列化.pdf

    JSON库如json-lib为Java提供了序列化和反序列化的能力,即将Java对象转换为JSON字符串,以及将JSON字符串还原为Java对象。以下是关于使用json-lib进行JSON序列化和反序列化的详细说明: 1. **JSON对象的序列化** ...

    Kryo序列化及反序列化用法示例

    接着,我们使用deserializationObject方法将字符串反序列化回CustomItemDto对象。最后,我们使用Assert.assertEquals方法来检查反序列化后的对象是否与原始对象相同。 Kryo序列化的主要步骤包括: 1. 创建Kryo对象...

    Java SE编程入门教程 java序列化(共14页).pptx

    Java SE编程入门教程 java序列化(共14页).pptx Java SE编程入门教程 java异常(共57页).pptx Java SE编程入门教程 java正则(共8页).pptx Java SE编程入门教程 properties(共3页).pptx Java SE编程入门教程 ...

    S08-SnakeYaml反序列化1

    标题 "S08-SnakeYaml反序列化1" 提到的是关于使用SnakeYaml库进行Java对象的序列化和反序列化的知识点。SnakeYaml是一个开源的库,允许在Java应用程序中处理YAML格式的数据。以下是这些知识点的详细说明: **1. ...

    深入理解Java对象的序列化与反序列化的应用

    Java对象的序列化和反序列化是Java编程中重要的概念,尤其在数据持久化和网络通信中发挥着关键作用。本文将深入解析这两个过程以及相关的API。 首先,对象的序列化是将Java对象转换为字节序列的过程,以便能够存储...

    Json协议下数据的序列化和反序列化的动态链接库和教程

    在这个例子中,`json.dumps()`函数就是用来进行JSON序列化的,它将Python字典`data`转换为了JSON字符串`json_str`。 **二、JSON数据反序列化** 反序列化则是将已序列化的数据转换回其原始形式。在JSON中,这意味着...

    Jackson进行json序列化

    Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的序列化和反序列化功能,能够将Java对象转换为JSON格式的字符串,同时也能将JSON数据转换回Java对象。在这个小例子中,我们将深入探讨如何使用Jackson进行...

    android webservice 对象序列化例子

    在Android开发中,与Web服务交互是常见的需求,这通常涉及到对象的序列化和反序列化过程。Web服务,特别是基于SOAP(Simple Object Access Protocol)的,需要将数据转换为可传输的格式,如XML,以便在客户端和...

    JSon发序列化总结

    下面通过一个具体的例子来展示如何使用DataContractJsonSerializer进行序列化和反序列化操作: ```csharp using System; using System.Collections.Generic; using System.IO; using System.Linq; using System....

    java序列化与反序列化操作实例分析

    Java序列化是Java平台提供的一种持久化机制,它允许我们将...总的来说,Java序列化和反序列化是处理对象持久化、网络传输和跨进程通信的重要手段。通过了解和掌握这一机制,开发者可以有效地管理和传输复杂的数据结构。

    模仿json,根据对象生成json字符串,根据字符串生成对象

    2. **JSON字符串转对象**:这个过程称为反序列化。同样以`com.google.gson`为例,我们可以使用`fromJson()`方法将JSON字符串转换回Java对象。在上面的例子中,如果我们已经有一个JSON字符串,可以这样做: ```java ...

    json转化字符串案例

    4. **序列化与反序列化的配置**:在实际应用中,可能需要对序列化和反序列化过程进行一些自定义设置,比如忽略某些字段、自定义日期格式等。 5. **其他库的使用**:除了Jackson,Gson库也是常用的JSON处理工具,它...

    S14-fastjson反序列化1

    3. **反序列化(Deserialization)**:反序列化是将 JSON 字符串转换回 Java 对象的过程。在 `deserialize` 类中,我们使用 `JSON.parseObject(jsonString, User.class)` 将 JSON 字符串转换为 `User` 类型的对象。...

    java-Hadoop序列化

    例如,在MapReduce中,所有的键(Key)和值(Value)都必须实现`Writable`接口,以确保它们能够被正确地序列化和反序列化。此外,如果键还需要参与排序,那么还必须实现`WritableComparable`接口。 Hadoop提供了...

    java求字符串的正向反向最大公共字符串

    在Java编程中,求字符串的正向和反向最大公共字符串是一个常见的字符串处理问题。这个问题的核心在于找到一个字符串与其反转后的最长相同子序列。我们可以通过动态规划或者双指针等方法来解决这个问题。下面将详细...

Global site tag (gtag.js) - Google Analytics