C# Newtonsoft Json.Net正确解析Json对象内的字符串数组

C# Newtonsoft Json.Net正确解析Json对象内的字符串数组,c#,json,deserialization,json.net,C#,Json,Deserialization,Json.net,我有以下问题,我想解析一个通过url查询字符串传递的Json对象 e、 g 我用过 JsonConvert.DeserializeObject<Dictionary<string, object>>(json) 如果我把绳子传过去 "{tags:[\"tag1\",\"tag2\"]} 它工作正常,我不希望我的用户必须添加“”引号 有办法解决这个问题吗?解决方案的伪代码可以是 获取json查询字符串元素 第一次拆分等于“=” 抓取“{tags=[”和“]}”之间的所有

我有以下问题,我想解析一个通过url查询字符串传递的Json对象

e、 g

我用过

JsonConvert.DeserializeObject<Dictionary<string, object>>(json)
如果我把绳子传过去

"{tags:[\"tag1\",\"tag2\"]}
它工作正常,我不希望我的用户必须添加“”引号


有办法解决这个问题吗?

解决方案的伪代码可以是

获取json查询字符串元素

第一次拆分等于“=”

抓取“{tags=[”和“]}”之间的所有文本

将文本拆分为“,”

删除项目中的任何空白

将它们重新连接在一起,但在它们周围加上引号并用逗号分隔

将该值放回“{tags=[”和“]}”之间,即“{tags=[”+newValue+“]}”

下面是一些示例C#代码


json字符串到达应用程序时的值是多少?可能是因为您的用户必须向您发送有效的json,或者您必须将DavidMZSpecialNameToStringAlmostLikeJason转换为真正的json,然后序列化程序将能够解析它。。。。或者您可以编写自己的反序列化代码。{tags=[tag1,tag2]}不是有效的JSON。
Newtonsoft.Json.JsonReaderException : Unexpected character encountered while parsing value: d. Line 1, position 8.
"{tags:[\"tag1\",\"tag2\"]}
        [Test]
        public void TestHack()
        {
            string almost = "{tags=[tag1,tag2]}";
            string json = this.HackToJson(almost);
            Trace.WriteLine(json);
        }
        public string HackToJson(string almostJson)
        {
            if( almostJson.StartsWith("{tags=[") && almostJson.EndsWith("]}"))
            {
                int tagsLen = "{tags=[".Length;
                string tags = almostJson.Substring(tagsLen, almostJson.Length - (tagsLen + 2));

                var items = tags.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);

                var itemsCleaned = (from c in items select "\"" + c.Trim() + "\"");

                var jsonpart = string.Join(",", itemsCleaned);

                var json = string.Format("{{tags=[{0}]}}", jsonpart);

                return json;

            }
            throw new NotImplementedException("not sure what to do here... ");
        }