/// <summary> /// decodes <paramref name="nsonString"/> into standard system and generic types /// </summary> /// <returns>The nson.</returns> /// <param name="nsonString">Nson string.</param> /// <param name="settings">Settings.</param> public static object FromNson(string nsonString, NsonSettings settings = null) { using (var instance = new NsonDecoder(nsonString, settings)) { return(instance.DecodeValueUntyped(instance.GetNextToken())); } }
/// <summary> /// overwrites the data on <paramref name="obj"/> with the data serialized from JSON. This will only /// work for custom objects, Dictionarys and Lists. /// </summary> /// <param name="nsonString">Nson string.</param> /// <param name="obj">Object.</param> /// <param name="settings">Settings.</param> public static void FromNsonOverwrite(string nsonString, object obj, NsonSettings settings = null) { using (var instance = new NsonDecoder(nsonString, settings)) { var type = obj.GetType(); if (obj is IDictionary) { instance.DecodeDictionary(type, obj); } else if (obj is ICollection) { instance.DecodeList(type, obj); } else { try { instance.DecodeObject(type, obj); } catch (Exception e) { throw new DecodeException($"{nameof(FromNsonOverwrite)} only support Dictionary, List and custom objects. Use {nameof(FromNson)} for other types", e); } } } }
/// <summary> /// decods <paramref name="nson"/> into a strongly typed object /// </summary> /// <param name="nson"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T FromNson <T>(string nson, NsonSettings settings = null) { System.Diagnostics.Debug.Assert(nson != null); return(NsonDecoder.FromNson <T>(nson, settings)); }
/// <summary> /// overwrites any data on <paramref name="item"/> with the data found in the nson string /// </summary> /// <param name="nson">Nson.</param> /// <param name="item">Item.</param> public static void FromNsonOverwrite(string nson, object item) { System.Diagnostics.Debug.Assert(nson != null); NsonDecoder.FromNsonOverwrite(nson, item); }
/// <summary> /// decodes <paramref name="nsonString"/> into an object of type <paramref name="type"/> /// </summary> /// <returns>The nson.</returns> /// <param name="nsonString">Nson string.</param> /// <param name="type">Type.</param> /// <param name="settings">Settings.</param> public static object FromNson(string nsonString, Type type, NsonSettings settings = null) { using (NsonDecoder instance = new NsonDecoder(nsonString, settings)) { return(instance.DecodeValue(instance.GetNextToken(), type)); } }