如果字符串包含\ n的</t>,ServiceStack.Text.JsonSerializer.DeserializeFromString <t>()无法反序列化

时间:2012-10-07 00:27:26

标签: c# .net json deserialization servicestack

尝试:T obj = JsonSerializer.DeserializeFromString<T>(jsonData);

在一个字符串中,其中包含多个\n个字符串。 JayRock的库成功地将其反序列化为:T obj = (T)JsonConvert.Import(typeof(T), jsonData);

这是一个错误,还是我需要手动剥离换行符?

2 个答案:

答案 0 :(得分:1)

我遇到的问题不是\ n,而是我的DTO上缺少公共属性。

RE:Can ServiceStack.Text deserialize JSON to a custom generic type?

答案 1 :(得分:0)

调试器预览弹出窗口将实际换行符显示为\ n,以便预览保持单行。文本可视化工具正确显示换行符。

这对我来说意味着JSON本身已被破坏,因为换行符 应使用\n进行编码。

字符串中的换行符在Javascript中是非法的,因此也在JSON中。

如果问题没有发生:nuget版本于10月1日发布,但是github在10月3日发布了一条提交评论“希望一劳永逸地修复空白问题” 。值得尝试。