Skip to content

Commit

Permalink
deserialize string dictionary
Browse files Browse the repository at this point in the history
  • Loading branch information
jetersen committed Jan 7, 2020
1 parent 21665b0 commit b8b8858
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/GitVersionExe.Tests/ExecutionResults.cs
@@ -1,6 +1,6 @@
using System.Collections.Generic;
using GitVersion.OutputVariables;
using System.Text.Json;
using GitVersionExe.Tests.Helpers;

namespace GitVersionExe.Tests
{
Expand All @@ -21,7 +21,7 @@ public virtual VersionVariables OutputVariables
{
get
{
var outputVariables = JsonSerializer.Deserialize<Dictionary<string, string>>(Output);
var outputVariables = CustomJsonSerializer.Deserialize<Dictionary<string, string>>(Output);
return VersionVariables.FromDictionary(outputVariables);
}
}
Expand Down
47 changes: 47 additions & 0 deletions src/GitVersionExe.Tests/Helpers/CustomJsonSerializer.cs
@@ -0,0 +1,47 @@
using System.Collections.Generic;
using System.Text.Json;

namespace GitVersionExe.Tests.Helpers
{
public class CustomJsonSerializer
{
public static T Deserialize<T>(string json)
{
var data = JsonSerializer.Deserialize<T>(json);

if (data is Dictionary<string, object> odata)
{
var ndata = new Dictionary<string, object>();
foreach (var key in odata.Keys)
{
var value = (JsonElement)odata[key];
switch (value.ValueKind)
{
case JsonValueKind.Undefined:
break;
case JsonValueKind.Object:
break;
case JsonValueKind.Array:
break;
case JsonValueKind.String:
ndata.Add(key, value.GetString());
break;
case JsonValueKind.Number:
ndata.Add(key, value.GetInt64().ToString());
break;
case JsonValueKind.True:
break;
case JsonValueKind.False:
break;
case JsonValueKind.Null:
break;
}
}

if (ndata is T obj) return obj;
}

return data;
}
}
}

0 comments on commit b8b8858

Please sign in to comment.