序列化仅具有布尔值的JToken时,首字母大写。由于该大写字母的原因,反序列化结果字符串失败。
以下测试由于以下原因而失败:“分析值时遇到意外字符:T.Path”,第0行,位置0。”
using System;
using FluentAssertions;
using Newtonsoft.Json.Linq;
using Xunit;
public class SimpleTests
{
[Fact]
public void TestJTokenBoolean()
{
var token = JToken.Parse("true");
token.Type.Should().Be(JTokenType.Boolean);
Action deserialize = () => JToken.Parse(token.ToString());
deserialize.Should().NotThrow();
}
}
做错什么了吗?还是可能是错误?
答案 0 :(得分:0)
我找到了答案。我以错误的方式进行序列化。该测试有效:
[Fact]
public void TestJTokenBoolean2()
{
var token = JToken.Parse("true");
token.Type.Should().Be(JTokenType.Boolean);
JToken token2 = null;
using (var stringWriter = new StringWriter())
{
token.WriteTo(new JsonTextWriter(stringWriter));
Action deserialize = () => token2 = JToken.Parse(stringWriter.ToString());
deserialize.Should().NotThrow();
token2.Type.Should().Be(JTokenType.Boolean);
}
}