-
Notifications
You must be signed in to change notification settings - Fork 24
/
JsonConvertString.cs
80 lines (78 loc) · 2.71 KB
/
JsonConvertString.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//------------------------------------------------------------
// All Rights Reserved , Copyright (C) 2006 , LiveXY , Ltd.
//------------------------------------------------------------
using System;
using System.Data;
using System.Data.Common;
using System.Runtime.InteropServices;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;
namespace Pub.Class.NewtonsoftJson {
/// <summary>
/// NewtonsoftJson序列化
///
/// 修改纪录
/// 2013.02.12 版本:1.0 livexy 创建此类
///
/// </summary>
public class JsonConvertString : ISerializeString {
/// <summary>
/// 序列成json
/// </summary>
/// <param name="o">对像</param>
/// <returns>json</returns>
public string Serialize<T>(T o) {
return JsonConvert.SerializeObject(o);
}
/// <summary>
/// json反序列化成对像
/// </summary>
/// <typeparam name="T">对像类型</typeparam>
/// <param name="data">xml</param>
/// <returns>对像</returns>
public T Deserialize<T>(string data) {
return JsonConvert.DeserializeObject<T>(data);
}
/// <summary>
/// 序列成json文件
/// </summary>
/// <param name="o">对像</param>
/// <param name="fileName">文件名</param>
public void SerializeFile<T>(T o, string fileName) {
FileDirectory.FileDelete(fileName);
FileDirectory.FileWrite(fileName, Serialize(o));
}
/// <summary>
/// json文件反序列化成对像
/// </summary>
/// <typeparam name="T">对像类型</typeparam>
/// <param name="fileName">文件名</param>
/// <returns>对像</returns>
public T DeserializeFile<T>(string fileName) {
string data = FileDirectory.FileReadAll(fileName, Encoding.UTF8);
return Deserialize<T>(data);
}
/// <summary>
/// 序列成XML后DES加密
/// </summary>
/// <param name="o">对像</param>
/// <param name="key">加密KEY</param>
/// <returns>XML密文</returns>
public string SerializeEncode<T>(T o, string key = "") {
return key.IsNullEmpty() ? Serialize(o) : Serialize(o).DESEncode(key);
}
/// <summary>
/// DES解密后反序列成对像
/// </summary>
/// <typeparam name="T">对像类型</typeparam>
/// <param name="data">XML密文</param>
/// <param name="key">解密KEY</param>
/// <returns>对像</returns>
public T DecodeDeserialize<T>(string data, string key = "") {
return key.IsNullEmpty() ? Deserialize<T>(data) : Deserialize<T>(data.DESDecode(key));
}
}
}