我想将以下JSON转换为CSV:
{
"Data": [
{
"Ref": "h123",
"StartDate": "2023-01-01",
"EndDate": "2024-01-01",
"Person": {
"Name": "Tester",
"Email": "test@test.com",
"PhoneNumber": null,
"AddressLine1": "1 avenue",
"AddressLine2": null,
"AddressLine3": null,
"AddressLine4": null,
"AddressLine5": null,
"Zipcode": "100123"
},
"ExtraData": null,
"ExtraData1": {
"X": "x",
"Y": "y",
"Z": "z"
}
},
{
"Ref": "h1234",
"StartDate": "2023-01-01",
"EndDate": "2024-01-01",
"Person": {
"Name": "Tester1",
"Email": "test@test.com",
"PhoneNumber": null,
"AddressLine1": "2 avenue",
"AddressLine2": null,
"AddressLine3": null,
"AddressLine4": null,
"AddressLine5": null,
"Zipcode": "100124"
},
"ExtraData": null,
"ExtraData1": {
"X": "x",
"Y": "y",
"Z": "z"
}
}
]
}
我使用最新的ChoETL.JSON.NETStandard
和.NET6(和.NET8)
using var reader = new ChoJSONReader("sample.json");
using var writer = new ChoCSVWriter("sample.csv").WithFirstLineHeader();
writer.Write(reader);
但假设需要更多配置,则输出CSV只有一行.
Data_0_Ref,Data_0_StartDate,Data_0_EndDate,Data_0_Person_Name,Data_0_Person_Email,Data_0_Person_PhoneNumber,Data_0_Person_AddressLine1,Data_0_Person_AddressLine2,Data_0_Person_AddressLine3,Data_0_Person_AddressLine4,Data_0_Person_AddressLine5,Data_0_Person_Zipcode,Data_0_ExtraData,Data_0_ExtraData1_X,Data_0_ExtraData1_Y,Data_0_ExtraData1_Z,Data_1_Ref,Data_1_StartDate,Data_1_EndDate,Data_1_Person_Name,Data_1_Person_Email,Data_1_Person_PhoneNumber,Data_1_Person_AddressLine1,Data_1_Person_AddressLine2,Data_1_Person_AddressLine3,Data_1_Person_AddressLine4,Data_1_Person_AddressLine5,Data_1_Person_Zipcode,Data_1_ExtraData,Data_1_ExtraData1_X,Data_1_ExtraData1_Y,Data_1_ExtraData1_Z
h123,2023-01-01,2024-01-01,Tester,test@test.com,,1 avenue,,,,,100123,,x,y,z,h1234,2023-01-01,2024-01-01,Tester1,test@test.com,,2 avenue,,,,,100124,,x,y,z
我期望的是多行没有字段索引.
还可以进行配置,使ExtraData
和ExtraData1
之间的switch 包括和不包括在CSV中.