0

我使用以下代码从 .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);

4

0 回答 0