我使用以下代码从 .json 文件编写 Excel 文件
string ofilepath = @"E:\temp\Gst2-error.json";
OpenFileDialog fd = new OpenFileDialog();
fd.FileName = @"E:\temp\Gst2-error.json";
fd.Filter = "(*.json)|*.json";
if (fd.ShowDialog() == DialogResult.OK)
{
ofilepath = Path.ChangeExtension(fd.FileName, "xls");
}
else
{
MessageBox.Show("Json File Not Selected");
return;
}
if (!Directory.Exists(@"c:\gstreturns"))
{
Directory.CreateDirectory(@"c:\gstreturns");
}
using (FileStream s = File.Open(fd.FileName, FileMode.Open))
using (StreamReader sr = new StreamReader(s))
using (JsonReader reader = new JsonTextReader(sr))
{
JsonSerializer serializer = new JsonSerializer();
GSTR1 o;
while (reader.Read())
{
if (reader.TokenType == JsonToken.StartObject)
{
//dynamic jr = serializer.Deserialize<dynamic>(reader);
o = serializer.Deserialize<GSTR1>(reader);
string swFileName = @"c:\gstreturns\" + GetUniqueName("b2b.csv", @"c:\gstreturns\");
StreamWriter sw = new StreamWriter(swFileName, cbIsAppend.Checked);
string monthyear = new DateTime(2018,Convert.ToInt16(o.fp.Substring(0, 2)), 1).ToString("MMM", CultureInfo.InvariantCulture);
monthyear += " " + o.fp.Substring(2);
#region b2b
string s1 = monthyear +"," + o.gstin,
s2 = "", s3 = "", s4 = "";
if (o.b2b != null)
{
b2bcsv(o, swFileName, sw, s1, ref s2, ref s3, ref s4);
}
#endregion b2b
if (o.cdn != null)
{
cdncsv(o, out swFileName, out sw, monthyear, out s1, out s2, out s3, out s4);
}
if (o.cdnr != null)
{
cdnrcsv(o, out swFileName, out sw, monthyear, out s1, out s2, out s3, out s4);
}
}
}
}
在这里我需要首先创建 json 类(GSTR1)。
我可以在不动态创建类的情况下编写excel,如下所示。我无法思考如何使用以下内容,有人可以帮助我吗?
动态 jr = serializer.Deserialize(reader);