我有一个对象:
class Node
{
public Node(string text)
{
Text = new List<string> { text };
}
public List<string> Text { get; set; }
}
当我尝试使用 Json.NET 将该对象的实例往返传输到 JSON 时,如下所示:
var root = new Node("");
var json = JsonConvert.SerializeObject(root);
root = JsonConvert.DeserializeObject<Node>(json);
我收到以下错误:
Unhandled Exception: Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: [. Path 'Text', line 2, position 11.
at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)
at Newtonsoft.Json.JsonTextReader.ReadAsString()
at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
出于某种原因,它无法处理该List<string> Text
领域,而我终其一生都无法弄清楚。
我实际上是在尝试反序列化它刚刚序列化的字符串。我可以尝试编写一个自定义转换器,但这里似乎没有必要。
有没有我可以用来帮助它的属性?
编辑:
创建了一个新的(.NET Framework 控制台应用程序)项目,其中只有一个Program.cs
文件,其中包含以下代码:
using Newtonsoft.Json; // Version: 12.0.3
using System.Collections.Generic;
namespace ConsoleApp1
{
class Node
{
public Node(string text)
{
Text = new List<string> { text };
}
public List<string> Text { get; set; }
}
class Program
{
static void Main()
{
var root = new Node("");
var json = JsonConvert.SerializeObject(root);
root = JsonConvert.DeserializeObject<Node>(json);
}
}
}
我仍然遇到同样的错误。