C# Json.NET未将字符串解析为Json对象
我正在使用将json字符串转换为.net对象,我正在使用下面的代码: json字符串如下所示: 问题是,应用程序在上面我的c#代码的第三行崩溃,消息错误是下一个: Newtonsoft.Json.dll中发生了类型为“System.ArgumentException”的第一次意外异常 我的代码有什么问题?我的json字符串错了吗?或者,如何才能正确地获取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是所需的返回类型)
有趣的是,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"]);
}
}