数据序列化用的JSON但是c#中的JSON库有点多,(Json、LitJson、Newtonsoft.Json)
[System.Serializable]
class Data
{
public byte a;
public int i;
public long l;
public double d;
public string s;
public bool b;
public Data data;
}
Data data = new Data();
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(data);
JOSN
#region JSON
{
// 序列化对象
string json1 = Json.JsonParser.Serialize(data); // 序列化无效
// 反序列JSON
var jObect = Json.JsonParser.Deserialize(strJson); // 反序列为 JsonObject (dynamic )
var typeObject1 = Json.JsonParser.Deserialize<Data>(strJson); // 反序列指定类型
var dict = Json.JsonParser.FromJson(strJson); // 反序列为 Dictionary
// 创建JSON对象 (dynamic)
Dictionary<string, object> hash = new Dictionary<string, object>();
dynamic j1 = new Json.JsonObject(hash);
j1.name = "안녕하세요.hellohejOlátere.Halloこんにちは- ahoj- cześćBonjour";
j1.value = 12;
var json2 = Json.JsonParser.Serialize<Json.JsonObject>(j1); // 序列化无效
var json3 = Json.JsonParser.Serialize(j1); // 序列化无效
var json4 = Json.JsonParser.ToJson(hash); // 序列化成功!!!
// JOSN数组
}
#endregion
LitJson
#region LitJson
{
// 序列化
var json1 = LitJson.JsonMapper.ToJson(data); // 序列化成功
// 反序列JSON
var jObect = LitJson.JsonMapper.ToObject(strJson); // 反序列为 JsonData
var typeObject = LitJson.JsonMapper.ToObject<Data>(strJson); // 反序列指定类型
// 创建JSON对象
LitJson.JsonData jData = new LitJson.JsonData();
jData["name"] = "안녕하세요.hellohejOlátere.Halloこんにちは- ahoj- cześćBonjour";
jData["value"] = 12;
var json2 = jData.ToJson(); // 序列化成功
var json3 = LitJson.JsonMapper.ToJson(jData); // 序列化成功
// Json数组
var array = new LitJson.JsonData();
array.SetJsonType(LitJson.JsonType.Array);
array.Add(jData["name"]);
array.Add(jData);
var json4 = array.ToJson();
}
#endregion
Newtonsoft.Json
#region Newtonsoft.Json
{
// 序列化
var json1 = Newtonsoft.Json.JsonConvert.SerializeObject(data); // 序列化成功
// 反序列JOSN
var jObject = Newtonsoft.Json.JsonConvert.DeserializeObject(strJson); // 反序列为 Linq.JObject
var typeObject = Newtonsoft.Json.JsonConvert.DeserializeObject<Data>(strJson); // 反序列指定类型
// 创建JSON对象
var j1 = new Newtonsoft.Json.Linq.JObject();
j1["name"] = "안녕하세요.hellohejOlátere.Halloこんにちは- ahoj- cześćBonjour";
j1.Add("value", 12);
var json2 = Newtonsoft.Json.JsonConvert.SerializeObject(j1);
// Json 数组
Newtonsoft.Json.Linq.JArray array = new Newtonsoft.Json.Linq.JArray();
array.Add(1);
array.Add(j1);
var json3 = Newtonsoft.Json.JsonConvert.SerializeObject(array);
}
#endregion
Newtonsoft.Json 支持最详尽,LitJson使用简单