当将JSON转换为字符串(第二种方法)时,我得到错误:
Newtonsoft.Json.JsonReaderException:"分析值时遇到意外字符:[.Path'",第1行,位置1。">
为什么我在第二种方法中遇到错误,但代码在第一种方法中运行良好,第二种方式有什么解决方案吗,因为我只能使用该方法?
代码:
static void Main(string[] args)
{
string abc = "[{"provider":"test","schemes":[{"tyo":"1","check":"99","slotNumber":"0"},{"tyo":"2","check":"99","slotNumber":"469"}]}]";
var value = abc.FromJson().ToString();
// Getting error in below line
var value2 = abc.FromJson(typeof(String));
}
// First Method
public static object FromJson(this string json)
{
var value = JsonConvert.DeserializeObject(json);
return value;
}
// Second Method
public static object FromJson(this string json, Type type)
{
var value = JsonConvert.DeserializeObject(json, type);
return value;
}
JsonConvert.DeserializeObject(string, Type)
尝试将JSON解析为给定类型,将对象的属性分配给结果类型的属性。由于String不提供必要的属性(在您的情况下,它可能需要是一个包含提供provider
和schemes
等属性的对象的数组),因此无法将其反序列化为字符串。
这是因为Newtonsoft支持对对象数组的反序列化。Json:
var value2 = abc.FromJson(typeof(object[]));