如何在JSON值的文本中维护回车/换行值(\ r \ n)?

时间:2011-12-22 16:44:00

标签: newline json.net carriage-return linefeed

我是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;

有没有办法在值中维护回车/换行对?

0 个答案:

没有答案