CSharp · Console
using System;
using System.Text;
using ChoETL;
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)
.WithField("FirstName")
.WithField("LastName")
.WithField("Age", fieldType: typeof(int))
.WithField("StreetAddress", jsonPath: "$.address.streetAddress", isArray: false)
.WithField("City", jsonPath: "$.address.city", isArray: false)
.WithField("State", jsonPath: "$.address.state", isArray: false)
.WithField("PostalCode", jsonPath: "$.address.postalCode", isArray: false)
.WithField("Phone", jsonPath: "$.phoneNumber[?(@.type=='home')].number", isArray: false)
.WithField("Fax", jsonPath: "$.phoneNumber[?(@.type=='fax')].number", isArray: false)
)
{
w.Write(r);
}
}
Console.WriteLine(csv.ToString());
}
}