C# Json.NET未将字符串解析为Json对象

C# Json.NET未将字符串解析为Json对象,c#,json,json.net,C#,Json,Json.net,我正在使用将json字符串转换为.net对象,我正在使用下面的代码: json字符串如下所示: 问题是,应用程序在上面我的c#代码的第三行崩溃,消息错误是下一个: Newtonsoft.Json.dll中发生了类型为“System.ArgumentException”的第一次意外异常 我的代码有什么问题?我的json字符串错了吗?或者,如何才能正确地获取json对象 有趣的是,c代码的第二行执行得很好,并打印出正确的字符串。可以使用指定的类型执行,例如(假设ObjectType是所需的返回类型)

我正在使用将json字符串转换为.net对象,我正在使用下面的代码:

json字符串如下所示:

问题是,应用程序在上面我的c#代码的第三行崩溃,消息错误是下一个:

Newtonsoft.Json.dll中发生了类型为“System.ArgumentException”的第一次意外异常

我的代码有什么问题?我的json字符串错了吗?或者,如何才能正确地获取json对象


有趣的是,c代码的第二行执行得很好,并打印出正确的字符串。

可以使用指定的类型执行,例如(假设
ObjectType
是所需的返回类型):

var deserializedObject=JsonConvert.DeserializeObject(responseString);

为什么要使用
dynamic

您的responsestring应该像这样正确格式化

“{\'db\':\'6-y4XlvtqzR.sqlite\”,“users\”:\“插入用户(id、名字、姓氏、密码、电子邮件、cel、级别)值(17、a、b、f7a9e、,e@gmail.com,2,3),(29,c,d,7c4a8d,f@hotmail.com,1,4)\“}”

我创建了以下示例,并监控了对象的Json结果。希望这会有所帮助

class Program
{

    class TestClass
    {
        public string db { get; set; }
        public string users { get; set; }

    }


    static void Main(string[] args)
    {
        TestClass ts = new TestClass();
        ts.db = "6-y4XlvtqzR.sqlite";
        ts.users =
            "INSERT INTO users (id, first_name, last_name, password, email, cel, level) VALUES (17,a,b,f7a9e,e@gmail.com,2,3),(29,c,d,7c4a8d,f@hotmail.com,1,4)";

        string json = JsonConvert.SerializeObject(ts);
        dynamic answer = JsonConvert.DeserializeObject(json);
        Console.WriteLine(answer.ToString());
        Console.WriteLine(answer["db"]);

    }
}

answer
是一个数组你是对的,我设置了控制台;一切都顺利
[
   {
      "db":"6-y4XlvtqzR.sqlite",
      "users":"INSERT INTO users (id, first_name, last_name, password, email, cel, level) VALUES (17,a,b,f7a9e,e@gmail.com,2,3),(29,c,d,7c4a8d,f@hotmail.com,1,4)"
   }
]
var deserializedObject = JsonConvert.DeserializeObject<ObjectType>(responseString);
class Program
{

    class TestClass
    {
        public string db { get; set; }
        public string users { get; set; }

    }


    static void Main(string[] args)
    {
        TestClass ts = new TestClass();
        ts.db = "6-y4XlvtqzR.sqlite";
        ts.users =
            "INSERT INTO users (id, first_name, last_name, password, email, cel, level) VALUES (17,a,b,f7a9e,e@gmail.com,2,3),(29,c,d,7c4a8d,f@hotmail.com,1,4)";

        string json = JsonConvert.SerializeObject(ts);
        dynamic answer = JsonConvert.DeserializeObject(json);
        Console.WriteLine(answer.ToString());
        Console.WriteLine(answer["db"]);

    }
}