【发布时间】:2015-09-09 19:36:20
【问题描述】:
我编写了一个 c# 应用程序,它逐行读取 JSON 文件并从中写入 csv 文件。我为每种 csv 格式创建了模型文件,这些模型的对象在解析时被实例化,然后在最后写入 csv。
例如:如果输入文件名为 abc.json,则为 abc 创建并实例化对象,将其存储在 List 等数据结构中,然后将其写入最后的 csv。
JSON 文件:
{
"Computer ID": "1697343078",
"Application Name": "Reporting Services Service",
"Date": "8\/25\/2015",
"Count": "1"
}
我要解析的代码如下:
using (System.IO.StreamReader sr = new System.IO.StreamReader(sFile, Encoding.UTF8))
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("Computer ID") && counter == 4)
{
string[] tokens = line.Split(':');
if (tokens.Length >= 2)
{
resourceID = reg.Replace(tokens[1], "");
}
counter = counter - 1;
line = sr.ReadLine();
}
}
由于输入文件中数据或其他字段的格式不一致,解析失败。代码抛出异常并且对该特定文件的解析完全失败。我希望我的代码拒绝解析的记录并继续解析文件中的其他记录,并最终为其生成一个 csv。
我希望它的行为如下, 逐行读取文件 如果解析时发生任何错误,请不要实例化该对象并继续解析该文件的其他行 将对象写入 csv
任何帮助将不胜感激。
【问题讨论】:
-
请提供一个错误的 JSON 小示例,以及您想要的相应 CSV 输出。
-
另外,解释错误是什么(它是一个异常,是不是别的什么......?)并显示与错误相关的代码......
-
在问题帖子中而不是在评论区执行此操作。 ;)
-
@Anky,请在问题中添加您的附加信息。不要将它放在 cmets 中。如果您将有关问题的信息“到处”传播,就很难理解和理解您的问题;-)
-
为什么不用真正的json解析器?