From ccfda873d0346ae1b668248955641abd17892dba Mon Sep 17 00:00:00 2001 From: Harald Wolff Date: Fri, 15 Nov 2019 13:55:10 +0100 Subject: [PATCH] Add byte[] mapping --- JSONObject.cs | 5 ++++- JSONString.cs | 2 +- mapping/JSONMapper.cs | 6 ++++++ mapping/JSONObjectMapping.cs | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/JSONObject.cs b/JSONObject.cs index f0a3c6c..e3ca732 100644 --- a/JSONObject.cs +++ b/JSONObject.cs @@ -63,7 +63,10 @@ namespace ln.json sb.Append(kenum.Current); sb.Append('"'); sb.Append(':'); - sb.Append(values[kenum.Current].ToString()); + if (values[kenum.Current]!=null) + sb.Append(values[kenum.Current].ToString()); + else + sb.Append("null"); if (!kenum.MoveNext()) break; diff --git a/JSONString.cs b/JSONString.cs index 4b4726a..c61fff2 100644 --- a/JSONString.cs +++ b/JSONString.cs @@ -26,7 +26,7 @@ namespace ln.json public JSONString(String value) :base(JSONValueType.STRING) { - Value = value; + Value = value == null ? String.Empty : value; } public override string ToString() diff --git a/mapping/JSONMapper.cs b/mapping/JSONMapper.cs index dd24e14..633bcee 100644 --- a/mapping/JSONMapper.cs +++ b/mapping/JSONMapper.cs @@ -110,6 +110,12 @@ namespace ln.json.mapping Add(new JSONIPv6Mapping()); + Add(new JSONMapping( + typeof(byte[]), + (JSONMapper mapper, object value) => new JSONString(Convert.ToBase64String(value as byte[])), + (JSONMapper mapper, JSONValue json) => Convert.FromBase64String((json as JSONString).ToNative().ToString()) + )); + } public void Add(JSONMapping mapping) diff --git a/mapping/JSONObjectMapping.cs b/mapping/JSONObjectMapping.cs index 78e500d..ff94bfa 100644 --- a/mapping/JSONObjectMapping.cs +++ b/mapping/JSONObjectMapping.cs @@ -54,7 +54,7 @@ namespace ln.json.mapping if (json is JSONObject) { JSONObject jObject = (JSONObject)json; - object o = Activator.CreateInstance(TargetType); + object o = Activator.CreateInstance(TargetType,true); Apply(mapper, jObject, o);