using LiveTools; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using ryCommon; using System; using System.Data; /// /// json 的摘要说明 /// public class Json { private string jsonText = ""; /// /// /// public JObject jo; /// /// /// public Json() { jo = new JObject(); } /// /// /// public string Html { get; private set; } = ""; /// /// /// public Json(JObject jo) { this.jo = jo; } private void LoadJson(string _jsonText) { Html = _jsonText; if (_jsonText == null) { jo = new JObject(); return; } if (_jsonText.Length == 0) { jo = new JObject(); return; } string xx = _jsonText.GetStr("descUrl", "counterApi"); jsonText = _jsonText.Replace("+new Date,", "'',"); jsonText = jsonText.Replace("!true,", "false,"); if (xx.Length > 0) { jsonText = jsonText.Replace(xx, " :'',\r\n "); } try { if (jsonText.Length == 0) { jo = new JObject(); } else jo = (JObject)JsonConvert.DeserializeObject(jsonText); } catch (Exception) { jo = new JObject(); } } /// /// /// /// public Json(string _jsonText) { LoadJson(_jsonText); } /// /// 获取或设置json文本 /// public string Text { get { return jo.ToString(); } set { jsonText = value; if (value.Length == 0) { jo = new JObject(); } else { jo = (JObject)JsonConvert.DeserializeObject(value); } } } /// /// /// /// /// public string GetJsonValue(string name) { if (jo[name] == null) { return ""; } else { return jo[name].ToString(); } } /// /// /// /// /// /// public string GetJsonValue(string name, string defvalue) { if (jo[name] == null) { return defvalue; } else { return jo[name].ToString(); } } /// /// /// /// /// /// public bool GetJsonValue(string name, bool defvalue) { if (jo[name] == null) { return defvalue; } else { string value = jo[name].ToString().ToLower(); return value == "1" || value == "true"; } } /// /// /// /// /// /// public int GetJsonValue(string name, int defvalue) { if (jo[name] == null) { return defvalue; } else { return jo[name].ToInt(defvalue); } } /// /// /// /// /// /// /// /// public int GetJsonValue(string name, int min, int max, int defvalue) { if (jo[name] == null) { return defvalue; } else { return jo[name].ToInt(min, max, defvalue); } } /// /// /// /// /// /// /// /// public decimal GetJsonValue(string name, decimal min, decimal max, decimal defvalue) { if (jo[name] == null) { return defvalue; } else { return jo[name].ToDecimal(min, max, defvalue); } } /// /// /// /// /// /// public Int64 GetJsonValue(string name, Int64 defvalue) { if (jo[name] == null) { return defvalue; } else { return jo[name].ToInt64(defvalue); } } /// /// /// /// /// /// public decimal GetJsonValue(string name, decimal defvalue) { if (jo[name] == null) { return defvalue; } else { return jo[name].ToDecimal(defvalue); } } /// /// /// /// /// /// public double GetJsonValue(string name, double defvalue) { if (jo[name] == null) { return defvalue; } else { return jo[name].ToDouble(defvalue); } } /// /// /// /// /// /// public JObject GetJsonValue(string name, JObject defvalue) { if (jo[name] == null) { return defvalue; } else { try { return (JObject)jo[name]; } catch { return defvalue; } } } /// /// /// /// /// /// public JArray GetJsonValue(string name, JArray defvalue) { if (jo[name] == null) { return defvalue; } else { try { return (JArray)jo[name]; } catch { return defvalue; } } } /// /// /// /// /// /// public void SetJsonValue(string name, decimal defvalue) { if (jo[name] == null) { Add(name, defvalue); } else { jo[name] = defvalue.ToString(); } } /// /// /// /// /// /// public void SetJsonValue(string name, int defvalue) { if (jo[name] == null) { Add(name, defvalue); } else { jo[name] = defvalue.ToString(); } } /// /// /// /// /// /// public void SetJsonValue(string name, string defvalue) { if (jo[name] == null) { Add(name, defvalue); } else { jo[name] = defvalue; } } /// /// /// /// /// /// public void SetJsonValue(string name, bool defvalue) { if (jo[name] == null) { Add(name, defvalue); } else { jo[name] = defvalue ? 1 : 0; } } /// /// /// /// /// /// public void SetJsonValue(string name, JObject defvalue) { if (jo[name] == null) { Add(name, defvalue); } else { jo[name] = defvalue; } } /// /// /// /// /// /// public void SetJsonValue(string name, JArray defvalue) { if (jo[name] == null) { Add(name, defvalue); } else { jo[name] = defvalue; } } /// /// /// /// /// public DataTable GetJsonValueByTable(string name) { if (jo[name] == null) { return new DataTable(); } else { try { return JsonConvert.DeserializeObject(jo[name].ToString(), typeof(DataTable)) as DataTable; } catch { return new DataTable(); } } } /// /// /// /// /// public void Add(string Name, string value) { try { jo.Add(Name, value); } catch { } } /// /// /// /// /// public void Add(string Name, JObject value) { try { jo.Add(Name, value); } catch { } } /// /// /// /// /// public void Add(string Name, JArray value) { try { jo.Add(Name, value); } catch { } } /// /// /// /// /// public void Add(string Name, int value) { try { jo.Add(Name, value); } catch { } } /// /// /// /// /// public void Add(string Name, long value) { try { jo.Add(Name, value); } catch { } } /// /// /// /// /// public void Add(string Name, bool value) { try { jo.Add(Name, value ? 1 : 0); } catch { } } /// /// /// /// /// public void Add(string Name, decimal value) { try { jo.Add(Name, value); } catch { } } /// /// /// /// /// public void Add(string Name, DataTable value) { try { jo.Add(Name, Newtonsoft.Json.JsonConvert.SerializeObject(value)); } catch { } } /// /// 返回Json /// /// public override string ToString() { return this.Text; } }