将JSON转换为字符串c#时使用JsonConvert.DeserializeObject时出错



当将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不提供必要的属性(在您的情况下,它可能需要是一个包含提供providerschemes等属性的对象的数组),因此无法将其反序列化为字符串。

这是因为Newtonsoft支持对对象数组的反序列化。Json:

var value2 = abc.FromJson(typeof(object[]));

相关内容

  • 没有找到相关文章

最新更新