CSharp · Console
using System;
using System.Text;
using ChoETL;
using System.Linq;
public class Program
{
public static void Main()
{
string json = @"
[
{
""firstName"": ""John"",
""lastName"": ""Smith"",
""age"": 25,
""address"": {
""streetAddress"": ""21 2nd Street"",
""city"": ""New York"",
""state"": ""NY"",
""postalCode"": ""10021""
},
""phoneNumber"": [
{
""type"": ""home"",
""number"": ""212 555-1234""
},
{
""type"": ""fax"",
""number"": ""646 555-4567""
}
]
},
{
""firstName"": ""Tom"",
""lastName"": ""Mark"",
""age"": 50,
""address"": {
""streetAddress"": ""10 Main Street"",
""city"": ""Edison"",
""state"": ""NJ"",
""postalCode"": ""08837""
},
""phoneNumber"": [
{
""type"": ""home"",
""number"": ""732 555-1234""
},
{
""type"": ""fax"",
""number"": ""609 555-4567""
}
]
}
]";
StringBuilder csv = new StringBuilder();
using (var w = new ChoCSVWriter(csv).WithFirstLineHeader())
{
using (var r = ChoJSONReader.LoadText(json)
)
{
w.Write(r.Select(i => new {
FirstName = i.firstName,
LastName = i.lastName,
Age = i.age,
StreetAddress = i.address.streetAddress,
City = i.address.city,
State = i.address.state,
PostalCode = i.address.postalCode,
Phone = i.phoneNumber[0].number,
Fax = i.phoneNumber[1].number
}));
}
}
Console.WriteLine(csv.ToString());
}
}