public static byte[] writeValueAsZipByte(List<CraneDataDtls> dtls) {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
GZIPOutputStream outputStream = null;
try {
outputStream = new GZIPOutputStream(byteOutputStream);
mapper.writeValue(outputStream, dtls);
} catch (JsonGenerationException e) {
LOG.error("Error when convert Pojo to Json ", e);
throw new UnhandledException("Server Error, please try again, or contact supportor\r\n");
} catch (JsonMappingException e) {
LOG.error("Error when convert Pojo to Json ", e);
throw new UnhandledException("Server Error, please try again, or contact supportor\r\n");
} catch (IOException e) {
LOG.error("Error when convert Pojo to Json ", e);
throw new UnhandledException("Server Error, please try again, or contact supportor\r\n");
}
byte[] arr = byteOutputStream.toByteArray();
return arr;
}

Java 上述代码:

JSON 数据转换 :

代码:

//{
// "Name": "Apple",
// "Expiry": "2008-12-28T00:00:00",
// "Sizes": [
// "Small"
// ]
//}
static void Main(string[] args)
{
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(, , );
product.Sizes = new string[] { "Small" ,"Large"};
string json = JsonConvert.SerializeObject(product);
Debug.WriteLine(json);
Console.ReadKey(); Product productClone = JsonConvert.DeserializeObject<Product>(json);
Debug.WriteLine(productClone.Name);
Debug.WriteLine(productClone.Expiry);
for (int i = ; i < productClone.Sizes.Length; i++)
{
Debug.Write(productClone.Sizes[i] + " ");
}
Console.ReadKey(); }

https://json.codeplex.com/downloads/get/832296

http://www.cnblogs.com/piaopiao7891/p/3624779.html

    public class Customer
{
public string CustomerName;
public int Unid;
}
        public void CallCustomerToJson()
{
Customer cc = new Customer { Unid = , CustomerName = "John" };
string strJson = CustomerToJsonSerialize(cc); Console.WriteLine(strJson);
} public void CallJsonToCustomer()
{
string strJson = "{\"CustomerName\":\"John\",\"Unid\":1}";
Customer c = JsonToCustomerDeserialize(strJson) as Customer; Console.WriteLine(c.Unid + " " + c.CustomerName);
} public void GenericCallCustomerToJson()
{
Customer cc = new Customer { Unid = , CustomerName = "John" };
string strJsons = GenericToJson<Customer>(cc);
Console.WriteLine(strJsons);
} public void GenericCallJsonToCustomer()
{
string strJson = "{\"CustomerName\":\"John\",\"Unid\":1}";
Customer c = GenericFromJson<Customer>(strJson);
Console.WriteLine(c.Unid + " " + c.CustomerName);
} #region Json /// <summary>
/// Json Serialize
/// </summary>
/// <param name="customer"></param>
/// <returns></returns>
public string CustomerToJsonSerialize(Customer customer)
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(Customer)); MemoryStream ms = new MemoryStream();
ds.WriteObject(ms, customer); string strReturn = Encoding.UTF8.GetString(ms.ToArray());
ms.Close(); return strReturn;
} /// <summary>
/// Json DeSerialize
/// </summary>
/// <param name="strJson"></param>
/// <returns></returns>
public object JsonToCustomerDeserialize(string strJson)
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(Customer));
MemoryStream ms = new MemoryStream(Encoding.Default.GetBytes(strJson)); return ds.ReadObject(ms);
} /// <summary>
/// GenericToJson
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static string GenericToJson<T>(T t)
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ds.WriteObject(ms, t); string strReturn = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return strReturn;
} /// <summary>
/// GenericFromJson
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="strJson"></param>
/// <returns></returns>
public static T GenericFromJson<T>(string strJson) where T : class
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson)); return ds.ReadObject(ms) as T;
} #endregion
    [DataContract]//必须申明,否则无法序列化
public class Person
{
[DataMember(Name = "PersonName")]//必须申明,否则无法序列化
private string Name; [DataMember(Name = "PersonSex")]//必须申明,否则无法序列化
private bool Sex; public Person(string name, bool sex)
{
this.Name = name;
this.Sex = sex;
} public override string ToString()
{
return "姓名:" + this.Name + "\t性别:" + (this.Sex ? "男" : "女");
} } [DataContract]
public class Programmer : Person
{
[DataMember(Name = "ProgramLanguage")]
private List<string> Languages; public Programmer(string name, bool sex, List<string> languages)
: base(name,sex)
{
this.Languages = languages;
} public override string ToString()
{
StringBuilder str = new StringBuilder();
str.Append(base.ToString() + "\t编程语言:");
foreach (string lang in this.Languages)
{
str.Append(lang + " ");
} return str.ToString();
} } public void DataContractSampleCode()
{
string filePath = @"D:\ObjectJson.txt"; List<string> languages = null;
languages = new List<string>(new string[] { "C#", "Java" });
languages = new List<string>(new string[] { "C#", "C++" });
languages = new List<string>(new string[] { "C#", "C++", "C", "Java" }); List<Programmer> list = new List<Programmer>();
list.Add(new Programmer("Coder1", true, languages));
list.Add(new Programmer("Coder2", false, languages));
list.Add(new Programmer("Coder3", true, languages)); //序列化对象
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<Programmer>)); MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, list);//将对象转换成json存储
string jsonStr = Encoding.Default.GetString(ms.ToArray());
File.WriteAllText(filePath, jsonStr);
ms.Position = ;
ms.Dispose();//关闭内存流 //反序列化对象
list.Clear(); using (FileStream fStream = File.Open(filePath,FileMode.OpenOrCreate))
{
list = (List<Programmer>)ser.ReadObject(fStream);
foreach (Programmer p in list)
{
Console.WriteLine(p);
}
} }

http://www.cnblogs.com/junbird-nest/archive/2012/03/23/2413441.html

http://www.cnblogs.com/phoenixtrees/archive/2011/05/01/2033847.html

SingletonBaseTemplate的更多相关文章

随机推荐

  1. 【cocos2dx 3.2】瓦片地图制作

    使用Tiled编辑地图 每个图层仅仅能放一种瓦片 瓦片的大小最好是32*32的倍数 对象层里面设置路径的坐标 主程序中获取对象层中的坐标,做对应的操作 设置口袋精灵类: Monster.h #incl ...

  2. ios开发之手势处理 之手势识别一

    #import "ViewController.h" @interface ViewController ()<UIGestureRecognizerDelegate> ...

  3. SetProcessWorkingSetSize() 方法使内存降低了很多(把内存放到交换区,其实会降低性能)——打开后长时间不使用软件,会有很长时间的加载过程,原来是这个!

    在项目中对程序性能优化时,发现用SetProcessWorkingSetSize() 方法使内存降低了很多,于是查阅了相关的资料如下: 我的程序为什么能够将占用的内存移至虚拟内存呢? 其实,你也可以, ...

  4. 使用Fernflower 比较准确的反编译整个java项目

    以前一直使用jd-gui.exe  ,都说是最好用的,但是编译总是有问题,还得修改,使用idea 后,感觉反编译的相当好,看注释是 Fernflower,然后参考 http://the.bytecod ...

  5. android通用適配器

    一.需求分析 在寻常的android开发过程中.ListView.GridView适配的编写是一件非常麻烦并且非常反复的事情,每次都须要考虑性能的优化.item的编写.获取网络图片时候信息的错乱等问题 ...

  6. NOI模拟 颜色 - 带修莫队/树套树

    题意: 一个颜色序列,\(a_1, a_2, ...a_i\)表示第i个的颜色,给出每种颜色的美丽度\(w_i\),定义一段颜色的美丽值为该段颜色的美丽值之和(重复的只计算一次),每次都会修改某个位置 ...

  7. 【u216】A+B Problem(aplusb)

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 对于给定的A和B,求A+B的值. [输入格式] 输入文件aplusb.in的第1行为一个整数A,第2行 ...

  8. Oracle数据库零散知识08 -- 逻辑备份和还原(转)

    一.介绍逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程.逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程.物理备份即可在数 ...

  9. java-线程-生产者-消费者

    概述 在Java中有四种方法支持同步,其中前三个是同步方法,一个是管道方法. wait() / notify()方法 await() / signal()方法 BlockingQueue阻塞队列方法 ...

  10. HDU 1502 - dp + 压位

    传送门 题目大意: 3*n的字符串,A.B.C分别有n个,w(X)代表X字母出现的次数,要求该字符串的所有前缀中w(A) >= w(B) >= w(C),问合法方案数有多少. 题目分析: ...