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

Commit ac9541f

Browse files
committed
Use JSV to serialize ObjectDictionary values ToStringDictionary
1 parent b579bfc commit ac9541f

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/ServiceStack.Text/TypeSerializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ public static Dictionary<string, string> ToStringDictionary(this object obj)
227227
var to = new Dictionary<string, string>();
228228
foreach (var kvp in kvps)
229229
{
230-
to[kvp.Key] = kvp.Value?.ToString();
230+
to[kvp.Key] = kvp.Value.ToJsv();
231231
}
232232
return to;
233233
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System.Collections.Generic;
2+
using NUnit.Framework;
3+
4+
namespace ServiceStack.Text.Tests
5+
{
6+
public class ConversionTests
7+
{
8+
[Test]
9+
public void Converting_ObjectDictionary_ToStringDictionary_converts_collection_to_jsv()
10+
{
11+
var objDictionary = new Dictionary<string, object>
12+
{
13+
{"string", "foo,bar" },
14+
{"intArray", new[] {1, 2} },
15+
{"stringArray", new[] {"foo", "bar"} },
16+
{"stringEscapeChars", "a, 'b" },
17+
{"stringArrayEscapeChars", new[] { "a, b", "c 'd"} },
18+
};
19+
20+
var strDictionary = objDictionary.ToStringDictionary();
21+
22+
Assert.That(strDictionary["string"], Is.EqualTo("foo,bar"));
23+
Assert.That(strDictionary["intArray"], Is.EqualTo("[1,2]"));
24+
Assert.That(strDictionary["stringArray"], Is.EqualTo("[foo,bar]"));
25+
Assert.That(strDictionary["stringEscapeChars"], Is.EqualTo("a, 'b"));
26+
Assert.That(strDictionary["stringArrayEscapeChars"], Is.EqualTo("[\"a, b\",c 'd]"));
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)