/* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and proprietary information of Alibaba.com ("Confidential * Information"). You shall not disclose such Confidential Information and shall * use it only in accordance with the terms of the license agreement you entered * into with Alibaba.com. */ package com.alibaba.json.bvt.bug; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.parser.ParserConfig; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.json.bvtVO.OptionKey; import com.alibaba.json.bvtVO.OptionValue; import com.alibaba.json.bvtVO.TempAttachMetaOption; /** * 类SerDeserTest.java的实现描述:TODO 类实现描述 * * @author lei.yaol 2011-12-27 下午03:44:18 */ public class SerDeserTest extends TestCase { protected void setUp() throws Exception { com.alibaba.fastjson.parser.ParserConfig.global.addAccept("com.alibaba.json.bvtVO."); } /** 用于被FastJson序列和反序列化的对象 */ private static Map<OptionKey, OptionValue<?>> options; static { options = new HashMap<OptionKey, OptionValue<?>>(); TempAttachMetaOption attach = new TempAttachMetaOption(); attach.setId(1000); attach.setName("test_name"); attach.setPath("http://alibaba-inc.com/test.txt"); ArrayList<TempAttachMetaOption> attachList = new ArrayList<TempAttachMetaOption>(); attachList.add(attach); // 设置value OptionValue<ArrayList<TempAttachMetaOption>> optionValue = new OptionValue<ArrayList<TempAttachMetaOption>>(); optionValue.setValue(attachList); options.put(OptionKey.TEMPALTE_ATTACH_META, optionValue); } public void test_for_yaolei() { // 序列化toJSONString() String jsonString = JSON.toJSONString(options); System.out.println(jsonString); { // 反序列化parse() HashMap<OptionKey, OptionValue<?>> deserOptions = (HashMap<OptionKey, OptionValue<?>>) JSON.parseObject(jsonString, new TypeReference<HashMap<OptionKey, OptionValue<?>>>() { }); System.out.println(deserOptions.get(OptionKey.TEMPALTE_ATTACH_META)); } // 序列化toJSONString(,) jsonString = JSON.toJSONString(options, SerializerFeature.WriteClassName); System.out.println(jsonString); // 反序列化parse() HashMap<OptionKey, OptionValue<?>> deserOptions = (HashMap<OptionKey, OptionValue<?>>) JSON.parse(jsonString); System.out.println(deserOptions.get(OptionKey.TEMPALTE_ATTACH_META)); } }