public DefaultJsonMapping() { json2Object = new Json2Object(); //json2Object.setToUseFields(); object2Json = new Object2Json(); object2Json.NodeExpander = new FieldReflectionNodeExpander(); object2Json.IndentSize = 2; //todo json 2 object should understand TypeAliaser object2Json.TypeAliaser = (t) => { return(t.FullName); }; object2Json.TypeAliasProperty = json2Object.TypeSpecifier; }
public DefaultJsonMapping() { json2Object = new Json2Object(); //json2Object.setToUseFields(); object2Json = new Object2Json(); object2Json.NodeExpander = new FieldReflectionNodeExpander(); object2Json.IndentSize = 2; //todo json 2 object should understand TypeAliaser object2Json.TypeAliaser = (t) => { return t.FullName; }; object2Json.TypeAliasProperty = json2Object.TypeSpecifier; }
static bool convertType(ref object value, Type type, object inValue) { bool bIsListType = isListType(type); if (bIsListType && type.IsArray) { IListNonGeneric iInValue = (IListNonGeneric)inValue; Array arr = Array.CreateInstance(type.GetElementType(), iInValue.Count); for (int done = 0; done < iInValue.Count; done++) { arr.SetValue(iInValue[done], done); } value = arr; return(true); } if (bIsListType) { value = Json2Object.newInstance(type); object[] arrInValue = (object[])inValue; MethodInfo mi = type.GetMethod("Add"); for (int done = 0; done < arrInValue.Length; done++) { object indexValue = arrInValue[done]; ParameterInfo pi = mi.GetParameters()[0]; if (indexValue != null && !pi.ParameterType.IsAssignableFrom(indexValue.GetType())) { indexValue = Convert.ChangeType(indexValue, pi.ParameterType); } mi.Invoke(value, new Object[] { indexValue }); } return(true); } return(false); }