/// <summary> /// Public constructor that accepts any object /// </summary> /// <param name="objValue">object to be reflected/evaluated for JSON conversion</param> public JSONReflector(object objValue) { Dictionary<JSONStringValue, JSONValue> jsonNameValuePairs = new Dictionary<JSONStringValue, JSONValue>(); Type type = objValue.GetType(); PropertyInfo[] properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (PropertyInfo pi in properties) { if (pi.GetIndexParameters().Length == 0) { JSONStringValue jsonParameterName = new JSONStringValue(pi.Name); JSONValue jsonParameterValue = this.GetJSONValue(pi.GetValue(objValue, null)); if (jsonParameterValue != null) { jsonNameValuePairs.Add(jsonParameterName, jsonParameterValue); } } } FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public); foreach (FieldInfo fi in fields) { JSONStringValue jsonParameterName = new JSONStringValue(fi.Name); JSONValue jsonParameterValue = this.GetJSONValue(fi.GetValue(objValue)); if (jsonParameterValue != null) { jsonNameValuePairs.Add(jsonParameterName, jsonParameterValue); } } this._jsonObjectCollection = new JSONObjectCollection(jsonNameValuePairs); }
private JSONValue GetJSONValue(object objValue) { if (objValue == null) { return null; } Type thisType = objValue.GetType(); JSONValue jsonValue = null; if (thisType == typeof(System.Int32)) { jsonValue = new JSONNumberValue(Convert.ToInt32(objValue)); } else if (thisType == typeof(System.Single)) { jsonValue = new JSONNumberValue(Convert.ToSingle(objValue)); } else if (thisType == typeof(System.Double)) { jsonValue = new JSONNumberValue(Convert.ToDouble(objValue)); } else if (thisType == typeof(System.Decimal)) { jsonValue = new JSONNumberValue(Convert.ToDecimal(objValue)); } else if (thisType == typeof(System.Byte)) { jsonValue = new JSONNumberValue(Convert.ToByte(objValue)); } else if (thisType == typeof(System.String)) { jsonValue = new JSONStringValue(Convert.ToString(objValue)); } else if (thisType == typeof(System.Boolean)) { jsonValue = new JSONBoolValue(Convert.ToBoolean(objValue)); } else if (thisType.BaseType == typeof(System.Enum)) { jsonValue = new JSONStringValue(Enum.GetName(thisType, objValue)); } else if (thisType.IsArray) { List<JSONValue> jsonValues = new List<JSONValue>(); Array arrValue = (Array)objValue; for (int x = 0; x < arrValue.Length; x++) { JSONValue jsValue = this.GetJSONValue(arrValue.GetValue(x)); jsonValues.Add(jsValue); } jsonValue = new JSONArrayCollection(jsonValues); } else if ( typeof(IDictionary<string, string>).IsAssignableFrom(thisType)) { Dictionary<JSONStringValue, JSONValue> jsonNameValuePairs = new Dictionary<JSONStringValue, JSONValue>(); foreach (KeyValuePair<string, string> pair in (IDictionary<string, string>)objValue) { JSONStringValue jsonParameterName = new JSONStringValue(pair.Key); JSONStringValue jsonParameterValue = new JSONStringValue(pair.Value); if (jsonParameterValue != null) { jsonNameValuePairs.Add(jsonParameterName, jsonParameterValue); } } jsonValue = new JSONObjectCollection(jsonNameValuePairs); } else if (thisType.IsSubclassOf(typeof(System.Object))) { jsonValue = new JSONReflector(objValue); } return jsonValue; }
/// <summary> /// Public constructor that accepts any object /// </summary> /// <param name="objValue">object to be reflected/evaluated for JSON conversion</param> public JSONReflector(object objValue) { Dictionary<JSONStringValue, JSONValue> jsonNameValuePairs = new Dictionary<JSONStringValue, JSONValue>(); Type type = objValue.GetType(); PropertyInfo[] properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (PropertyInfo pi in properties) { JSONStringValue jsonParameterName = new JSONStringValue(pi.Name); object val = pi.GetValue(objValue, null); JSONValue jsonParameterValue = this.GetJSONValue(val); if (jsonParameterValue != null) { jsonNameValuePairs.Add(jsonParameterName, jsonParameterValue); } } this._jsonObjectCollection = new JSONObjectCollection(jsonNameValuePairs); }
/// <summary> /// Builds the json from object. /// </summary> /// <param name="treeNode">The tree node.</param> /// <returns></returns> private JSONValue BuildJsonFromObject(TreeNode treeNode) { JSONObjectCollection result = new JSONObjectCollection(); foreach (TreeNode child in treeNode.Nodes) { Node node = (Node)child.Tag; result.Add(new JSONStringValue(node.Name), BuildJson(child)); } return result; }
/// <summary> /// An example implementation of JSONSharp. The location of a purveyor of fine aleas is used /// to show how different data types are handled when converted to JSON format at render time. /// </summary> /// <param name="args">command-line arguments; none used in this example</param> public static void Main(string[] args) { // Create a Dictionary of name/value pairs for the entire JSON object Dictionary<JSONStringValue, JSONValue> jsonNameValuePairs = new Dictionary<JSONStringValue, JSONValue>(); // Create and add name/value pairs for business, address, city, state, // zipcode, latitude, longitude, covercharge and url JSONStringValue jsv_name_Business = new JSONStringValue("business"); JSONStringValue jsv_value_Business = new JSONStringValue("Tractor Tavern"); jsonNameValuePairs.Add(jsv_name_Business, jsv_value_Business); JSONStringValue jsv_name_Address = new JSONStringValue("address"); JSONStringValue jsv_value_Address = new JSONStringValue("5213 Ballard Ave NW"); jsonNameValuePairs.Add(jsv_name_Address, jsv_value_Address); JSONStringValue jsv_name_City = new JSONStringValue("city"); JSONStringValue jsv_value_City = new JSONStringValue("Seattle"); jsonNameValuePairs.Add(jsv_name_City, jsv_value_City); JSONStringValue jsv_name_State = new JSONStringValue("state"); JSONStringValue jsv_value_State = new JSONStringValue("WA"); jsonNameValuePairs.Add(jsv_name_State, jsv_value_State); JSONStringValue jsv_name_Zipcode = new JSONStringValue("zipcode"); JSONNumberValue jsv_value_Zipcode = new JSONNumberValue(98107); jsonNameValuePairs.Add(jsv_name_Zipcode, jsv_value_Zipcode); JSONStringValue jsv_name_Latitude = new JSONStringValue("latitude"); JSONNumberValue jsv_value_Latitude = new JSONNumberValue(47.665663); jsonNameValuePairs.Add(jsv_name_Latitude, jsv_value_Latitude); JSONStringValue jsv_name_Longitude = new JSONStringValue("longitude"); JSONNumberValue jsv_value_Longitude = new JSONNumberValue(-122.382343); jsonNameValuePairs.Add(jsv_name_Longitude, jsv_value_Longitude); JSONStringValue jsv_name_CoverCharge = new JSONStringValue("covercharge"); JSONBoolValue jsv_value_CoverCharge = new JSONBoolValue(true); jsonNameValuePairs.Add(jsv_name_CoverCharge, jsv_value_CoverCharge); JSONStringValue jsv_name_Url = new JSONStringValue("url"); JSONStringValue jsv_value_Url = new JSONStringValue("http://tractortavern.citysearch.com/"); jsonNameValuePairs.Add(jsv_name_Url, jsv_value_Url); // Add an array of payment methods JSONStringValue jsv_name_PaymentMethods = new JSONStringValue("paymentmethods"); List<JSONValue> listPaymentMethods = new List<JSONValue>(); listPaymentMethods.Add(new JSONStringValue("Cash")); listPaymentMethods.Add(new JSONStringValue("Visa")); listPaymentMethods.Add(new JSONStringValue("Mastercard")); listPaymentMethods.Add(new JSONStringValue("American Express")); JSONArrayCollection jsv_value_PaymentMethods = new JSONArrayCollection(listPaymentMethods); jsonNameValuePairs.Add(jsv_name_PaymentMethods, jsv_value_PaymentMethods); // Construct our object, passing the Dictionary of name/value pairs. We could have // created our JSONObjectCollection first, then called the Add() method to populate // the object's internal Dictionary. JSONObjectCollection jsonObjectCollection = new JSONObjectCollection(jsonNameValuePairs); // The ToString() is the compact representation of the object's JSON output Console.WriteLine("JSONObjectCollection.ToString()"); Console.WriteLine("==============================="); Console.WriteLine(jsonObjectCollection.ToString()); Console.WriteLine("==============================="); Console.WriteLine(); // PrettyPrint() is great for readability Console.WriteLine("JSONObjectCollection.PrettyPrint()"); Console.WriteLine("==============================="); Console.WriteLine(jsonObjectCollection.PrettyPrint()); Console.WriteLine("==============================="); }
public bool reflashDictCache() { bool isSuccess = false; JSONObjectCollection jsonGraph = new JSONObjectCollection(); JSONObjectCollection jarr = new JSONObjectCollection(); ICriteria icr = CreateCriteria<DictTypeModel>(); IList<DictTypeModel> dictTypes=icr.List<DictTypeModel>(); icr=CreateCriteria<DictModel>(); IList<DictModel> dicts=icr.List<DictModel>(); foreach (DictTypeModel dictType in dictTypes) { IList<DictModel> tempDicts=new List<DictModel>(); foreach (DictModel dict in dicts) { if (dict.type != dictType.id) { continue; } tempDicts.Add(dict); } jsonGraph.Add(new JSONStringValue(dictType.id),DatagridObject.ToDatagridObject<DictModel>(tempDicts).toJSONObjectCollection()); } StringBuilder sbr = new StringBuilder(""); sbr .Append("Class.forName(\"Toyz4js.cache\"); \n\n") .Append("Toyz4js[\"cache\"][\"DictModel\"]=").Append(jsonGraph.ToString()).Append("; \n\n \n\n") .Append("Toyz4js[\"cache\"][\"DictTypeModel\"]=").Append(DatagridObject.ToDatagridObject<DictTypeModel>(dictTypes).toJSONObjectCollection()).Append("; \n\n \n\n") ; try { FileUtil.WriteFile(this.pathDictCache, sbr.ToString()); } catch(Exception ex) { isSuccess = false; } return isSuccess; }
public bool reflashBrandCache() { bool isSucess = false; JSONObjectCollection jsonCraph = new JSONObjectCollection(); StringBuilder sbr = new StringBuilder(""); sbr .Append("Class.forName(\"Toyz4js.cache\"); \n\n"); JSONObjectCollection jsonBrand = new JSONObjectCollection(); IList<BrandModel> brands = CreateCriteria<BrandModel>().List<BrandModel>(); sbr .Append("Toyz4js[\"cache\"][\"BrandModel\"][\"brands\"]=") .Append(DatagridObject.ToDatagridObject<BrandModel>(brands).toJSONObjectCollection().ToString()) .Append("\n\n") ; isSucess= FileUtil.WriteFile(pathBrandCache, sbr.ToString()); return isSucess; }