Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit da5efc0

Browse files
committed
Fix tests
1 parent 99a556f commit da5efc0

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

src/ServiceStack.Text/Common/WriteDictionary.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,10 @@ public static void WriteGenericIDictionary(
205205
writer.Write(JsonUtils.Null);
206206
return;
207207
}
208+
209+
if (map is JsonObject jsonObject)
210+
map = (IDictionary<TKey,TValue>) jsonObject.ToUnescapedDictionary();
211+
208212
writer.Write(JsWriter.MapStartChar);
209213

210214
var encodeMapKey = Serializer.GetTypeInfo(typeof(TKey)).EncodeMapKey;

src/ServiceStack.Text/JsonObject.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,17 @@ public class JsonObject : Dictionary<string, string>, IEnumerable<KeyValuePair<s
102102
IEnumerator<KeyValuePair<string, string>> IEnumerable<KeyValuePair<string, string>>.GetEnumerator()
103103
=> GetEnumerator();
104104

105+
public Dictionary<string, string> ToUnescapedDictionary()
106+
{
107+
var to = new Dictionary<string, string>();
108+
var enumerateAsConcreteDict = (Dictionary<string, string>)this;
109+
foreach (var entry in enumerateAsConcreteDict)
110+
{
111+
to[entry.Key] = entry.Value;
112+
}
113+
return to;
114+
}
115+
105116
public static JsonObject Parse(string json)
106117
{
107118
return JsonSerializer.DeserializeFromString<JsonObject>(json);

src/ServiceStack.Text/Pcl.Dynamic.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public static dynamic Deserialize(string json)
102102
{
103103
// Support arbitrary nesting by using JsonObject
104104
var deserialized = JsonSerializer.DeserializeFromString<JsonObject>(json);
105-
var hash = deserialized.ToDictionary<KeyValuePair<string, string>, string, object>(entry => entry.Key, entry => entry.Value);
105+
var hash = deserialized.ToUnescapedDictionary().ToObjectDictionary();
106106
return new DynamicJson(hash);
107107
}
108108

0 commit comments

Comments
 (0)