私は奇妙な問題に遭遇しました。正しい文字列である{"text":"s","cursorPosition":189,"dataSource":"json_northwind",
が与えられても、それは引き続き正しく解析されます。Newtonsoft.Jsonが間違ったjsonをパーズします
これはクラスである:ここでは
public class CompletionDataRequest
{
public CompletionDataRequest(string text, int cursorPosition, string dataSource, string project)
{
Text = text;
CursorPosition = cursorPosition;
DataSource = dataSource;
Project = project;
}
public string Text { get; }
public int CursorPosition { get; }
public string DataSource { get; }
public string Project { get; }
}
は驚くほど成功したテストです:
var s = @"{""text"":""s"",""cursorPosition"":189,""dataSource"":""json_northwind"",";
var request = JsonConvert.DeserializeObject<CompletionDataRequest>(s);
request.Text.Should().Be("s");
request.CursorPosition.Should().Be(189);
request.DataSource.Should().Be("json_northwind");
request.Project.Should().BeNull();
は、ライブラリーは、いくつか緩ん解析規則を持っていないか、または多分これはバグでしょうか?私は、ライブラリ、バージョン9.0.1
@Łukasz - OK、私は先に進んで問題を報告しました[閉じられていないオブジェクトを逆シリアル化するには、オブジェクトにパラメータ化されたコンストラクタがあるときに成功します。 #1038](https://github.com/JamesNK/Newtonsoft.Json/issues/1038)。 – dbc
ああ、私は進行中でしたが、私はそれをやめるでしょう。手伝ってくれてありがとう –