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;
}
}