我是JSON的新手,我被分配了一个项目,我需要从第三方Web服务中使用它。我决定使用Json.NET,因为它看起来非常完整,似乎只是弄清楚了很多东西。
有很多文字,我在维护回车/换行对方面遇到了麻烦。
我可以使用此测试复制问题:
public class MyClass
{
public string value { get; set; }
}
[Test]
public void HandleNewLines2()
{
var value = "ALERT \r\n\r\n\r\n. 5010";
var json = @"{""value"": """ + value + @"""}";
MyClass myClass = JsonConvert.DeserializeObject<MyClass>(json);
Assert.IsNotNull(myClass);
Assert.AreEqual(value, myClass.value);
}
它失败了:
HandleNewLines2 : Failed Expected string length 19 but was 16. Strings differ at index 7.
Expected: "ALERT \r\n\r\n\r\n. 5010"
But was: "ALERT \r\r\r. 5010"
--------------------^
通过\n
方法删除换行符(JsonTextReader::MoveNext
):
case CarriageReturnValue:
if (_reader.Peek() == LineFeedValue)
_reader.Read();
_currentLineNumber++;
_currentLinePosition = 0;
break;
有没有办法在值中维护回车/换行对?