Add byte[] mapping

master
Harald Wolff 2019-11-15 13:55:10 +01:00
parent 96315997b1
commit ccfda873d0
4 changed files with 12 additions and 3 deletions

View File

@ -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;

View File

@ -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()

View File

@ -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)

View File

@ -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);