// Writes all fields of a class instance public static void WriteJSONClassInstance <T>(Jboy.JsonWriter writer, T instance, HashSet <string> fieldFilter = null, HashSet <string> fieldExclude = null) { if (instance == null) { writer.WriteNull(); return; } // Type pointer Type type = typeof(T); // Obtain all fields FieldInfo[] fields = type.GetFields(); // Loop through all fields writer.WriteObjectStart(); foreach (var field in fields) { if (field.IsStatic) { continue; } // Get property name and value string name = field.Name; if (fieldFilter != null && !fieldFilter.Contains(name)) { continue; } if (fieldExclude != null && fieldExclude.Contains(name)) { continue; } object val = field.GetValue(instance); //LogManager.General.Log("Writing '" + name + "'"); // with value '" + ((double)val).ToString() + "'"); //LogManager.General.Log("ValueType " + val.GetType().ToString()); //LogManager.General.Log("Value " + val.ToString()); // Write them to the JSON stream writer.WritePropertyName(name); GenericSerializer.WriteJSONValue(writer, val); } writer.WriteObjectEnd(); }
// Writer public static void JsonSerializer(Jboy.JsonWriter writer, object instance) { writer.WriteNull(); /*var tex = (Texture2D)instance; * writer.WriteObjectStart(); * * writer.WritePropertyName("width"); * writer.WriteNumber(tex.width); * * writer.WritePropertyName("height"); * writer.WriteNumber(tex.height); * * writer.WritePropertyName("data"); * Jboy.Json.WriteObject(tex.EncodeToPNG(), writer); * * writer.WriteObjectEnd();*/ }
// Writer public static void JsonSerializer(Jboy.JsonWriter writer, object instance) { if (instance == null) { writer.WriteNull(); return; } var item = (Item)instance; writer.WriteObjectStart(); // ID writer.WritePropertyName("id"); writer.WriteNumber(item.id); // Meta data item.WriteItemMetaData(writer); writer.WriteObjectEnd(); }
// Writer public static void JsonSerializer(Jboy.JsonWriter writer, object instance) { if (instance == null) { writer.WriteNull(); return; } var slot = (ItemSlot)instance; writer.WriteObjectStart(); // ID writer.WritePropertyName("item"); Jboy.Json.WriteObject(slot.item, writer); // Count writer.WritePropertyName("count"); writer.WriteNumber(slot.count); writer.WriteObjectEnd(); }