在ServiceStack.Text.CsvReader中禁用JSV解析

时间:2019-02-01 04:02:08

标签: c# servicestack-text

我正在尝试使用ServiceStack.Text反序列化一些CSV数据。它起作用,除了一些以方括号开头的字符串值。重现该行为的一些简单测试数据如下所示:

Name,Whatever,Id
Bill,[Foo] Bar,1234

假设我们正在反序列化此类:

public class Thing
{
    public string Name { get; set; }
    public string Whatever { get; set; }
    public int Id { get; set; }
}

由于CsvReader中的this code,方括号引起了一些特殊的逻辑,这些逻辑试图将Whatever值变成一个列表。然后将右方括号视为该值的结尾,由于下一个字段是int,因此最终试图将Bar解析为int。

似乎有一种方法可以告诉CsvReader“这里没有JSV”,但是我找不到解决方法。用引号将值引起来是可行的,但我对源数据没有任何控制权。我可以做一些预处理,并引用所有这些值,但是...。

我尝试设置JsConfig.DeSerializeFn,但是很早在我们进行反序列化之前,ParseFields便已对其进行解析。

是否有某种方法可以停止将方括号视为列表的开头?我使用错误的库来解析简单的CSV数据吗?

0 个答案:

没有答案