/// <summary> /// Parses the input to a magic command, interpreting the input as /// a name followed by a JSON-serialized dictionary. /// </summary> public static (string, Dictionary <string, string>) ParseInput(string input) { if (input == null) { return(string.Empty, new Dictionary <string, string> { }); } var BLANK_SPACE = new char[1] { ' ' }; var inputParts = input.Split(BLANK_SPACE, 2, StringSplitOptions.RemoveEmptyEntries); var name = inputParts.Length > 0 ? inputParts[0] : string.Empty; var args = inputParts.Length > 1 ? JsonConverters.JsonToDict(inputParts[1]) : new Dictionary <string, string> { }; return(name, args); }
public void JsonToDict() { var s = "bar"; var i = 1; var t = ("A", ("A.a", "A.b")); var a = new int[] { 1, 2, 3, 4 }; var arg = new Dictionary <string, object> { { "s", s }, { "i", i }, { "t", t }, { "a", a } }; var json = JsonConvert.SerializeObject(arg); var result = JsonConverters.JsonToDict(json); Assert.AreEqual(4, result.Count); Assert.AreEqual(JsonConvert.SerializeObject(s), result["s"]); Assert.AreEqual(JsonConvert.SerializeObject(i), result["i"]); Assert.AreEqual(JsonConvert.SerializeObject(t), result["t"]); Assert.AreEqual(JsonConvert.SerializeObject(a), result["a"]); }
/// <summary> /// Parses the input to a magic command, interpreting the input as /// a name followed by a JSON-serialized dictionary. /// </summary> public static Dictionary <string, string> JsonToDict(string input) => !string.IsNullOrEmpty(input) ? JsonConverters.JsonToDict(input) : new Dictionary <string, string> { };