C# 中的JSON

数据序列化用的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(strJson);   // 反序列指定类型
    var dict = Json.JsonParser.FromJson(strJson);                           // 反序列为 Dictionary

    // 创建JSON对象 (dynamic)
    Dictionary hash = new Dictionary();
    dynamic j1 = new Json.JsonObject(hash);
    j1.name = "안녕하세요.hellohejOlátere.Halloこんにちは- ahoj- cześćBonjour";
    j1.value = 12;
    var json2 = Json.JsonParser.Serialize(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(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(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使用简单

你可能感兴趣的:(C#)