Я новичок в JSON, и мне был назначен проект, в котором мне нужно использовать его из стороннего веб-сервиса. Я решил использовать 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;
Есть ли способ сохранить пары возврата каретки / перевода строки в значении?