आधुनिक एपीआई और वेब सेवाओं के साथ काम करते समय, डेवलपर्स अक्सर जटिल JSON संरचनाओं से मिलते हैं जिनमें गहराई से नकली रैली और वस्तुएं होती हैं. इन दार्शनिक डेटा को फ्लैट Excel तालिकाओं में परिवर्तित करना एक महत्वपूर्ण चुनौती है. यह गाइड दिखाता है कि कैसे प्रभावी ढंग से .NET के लिए **Aspose.Cells का उपयोग करके Excel में नक्शे किए गए जेएसओएन रॅली को कनवर्टर करें.

Introduction

आधुनिक एपीआई और वेब सेवाओं के साथ काम करते समय, डेवलपर्स अक्सर जटिल JSON संरचनाओं से मिलते हैं जिनमें गहराई से नकली रैली और वस्तुएं होती हैं. इन दार्शनिक डेटा को फ्लैट Excel तालिकाओं में परिवर्तित करना एक महत्वपूर्ण चुनौती है. यह गाइड दिखाता है कि कैसे प्रभावी ढंग से .NET के लिए **Aspose.Cells का उपयोग करके Excel में नक्शे किए गए जेएसओएन रॅली को कनवर्टर करें.

चुनौती: जटिल Nested JSON संरचनाओं

एक वेब एपीआई से इस विशिष्ट JSON प्रतिक्रिया पर विचार करें:

इस दार्शनिक डेटा को एक फ्लैट Excel तालिका में परिवर्तित करने से कई चुनौतियां पैदा होती हैं:

  • कैसे संभालने के लिए कई घोंसले (विभागों, कर्मचारियों, कौशल)
  • माता-पिता और बच्चे के वस्तुओं के बीच संबंधों को कैसे बनाए रखें
  • कैसे एक पढ़ने योग्य स्पेयरबोर्ड संरचना बनाने के लिए

चरण-दर-चरण समाधान

चरण 1: Aspose.Cells स्थापित करें

सबसे पहले, .NET के लिए Aspose.Cells स्थापित करें:

dotnet add package Aspose.Cells

चरण 2: JsonLayoutOptions सेट करें

सही ढंग से स्थापित करें JsonLayoutOptions Array के बारे में जानें:

using Aspose.Cells;
using Aspose.Cells.Utility;
// Create JsonLayoutOptions with array handling
JsonLayoutOptions options = new JsonLayoutOptions();
options.ArrayAsTable = true;  // Crucial for proper flattening
options.ConvertNumericOrDate = true;
options.IgnoreNull = true;

चरण 3: जटिल JSON डेटा लोड करें

अपने जटिल निस्टेड JSON डेटा को लोड करें:

// Sample JSON with nested arrays
string jsonData = File.ReadAllText("complex_data.json");
// Initialize workbook and worksheet
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];

चरण 4: उन्नत फ्लैटेनिंग सेट करें

उन्नत नस्टेड संरचनाओं के लिए, एक कस्टम फ्लेटिंग समाधान लागू करें:

// Define starting cell position
int startRow = 0;
int startColumn = 0;
// Import the JSON data with our configured options
JsonUtility.ImportData(jsonData, worksheet.Cells, startRow, startColumn, options);

चरण 5: बहु-स्तरीय नस्टेड आरे को संभालना

जटिल बहु-स्तरीय रैली के लिए, हमें अतिरिक्त प्रसंस्करण की आवश्यकता है:

// Create a second worksheet for detailed employee data
Worksheet employeeSheet = workbook.Worksheets.Add("Employees");
int empRow = 0;
// Add headers for the employee sheet
string[] headers = { "Department", "Employee ID", "Employee Name", "Skills" };
for (int i = 0; i < headers.Length; i++)
{
    employeeSheet.Cells[empRow, i].PutValue(headers[i]);
}
empRow++;
// Parse JSON to extract and flatten employee data
// Note: This would require a JSON parsing library like Newtonsoft.Json
// JObject root = JObject.Parse(jsonData);
// foreach (var dept in root["departments"])
// {
//     string deptName = dept["name"].ToString();
//     foreach (var emp in dept["employees"])
//     {
//         employeeSheet.Cells[empRow, 0].PutValue(deptName);
//         employeeSheet.Cells[empRow, 1].PutValue((int)emp["id"]);
//         employeeSheet.Cells[empRow, 2].PutValue(emp["name"].ToString());
//         employeeSheet.Cells[empRow, 3].PutValue(string.Join(", ", emp["skills"].ToObject<string[]>()));
//         empRow++;
//     }
// }

चरण 6: पेशेवर प्रारूपण का उपयोग करें

सही प्रारूपण के साथ पढ़ने की क्षमता बढ़ाएं:

// Format both worksheets as tables with headers
worksheet.ListObjects.Add(0, 0, worksheet.Cells.LastCell.Row, worksheet.Cells.LastCell.Column, true);
employeeSheet.ListObjects.Add(0, 0, empRow - 1, 3, true);
// Auto-fit columns for better readability
worksheet.AutoFitColumns();
employeeSheet.AutoFitColumns();

चरण 7: परिणाम बचाएं

फ्लैट डेटा के साथ कार्यपुस्तिका निर्यात करें:

// Save as Excel file
workbook.Save("flattened_data.xlsx");

Aspose.Cells का उपयोग करके एक सरल समाधान

कई परिदृश्यों के लिए, Aspose.Cells अपने अंतर्निहित JSON प्रबंधन का उपयोग करके एक सरल दृष्टिकोण प्रदान करता है:

// Initialize workbook
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
// Configure JSON import options
JsonLayoutOptions options = new JsonLayoutOptions
{
    ArrayAsTable = true,
    ConvertNumericOrDate = true,
    IgnoreNull = true,
    TitleStyle = new CellsFactory().CreateStyle(),
    NestedArrayAsTable = true  // Important for nested arrays
};
// Set title style for better readability
options.TitleStyle.Font.IsBold = true;
// Import JSON
JsonUtility.ImportData(jsonData, sheet.Cells, 0, 0, options);
// Save result
workbook.Save("flattened_output.xlsx");

कुंजी अंतर्दृष्टि और सर्वोत्तम अभ्यास

  • Use ArrayAsTable = true - यह आरे के उचित प्रतिनिधित्व के लिए आवश्यक है
  • बहुत से अधिक कार्यपत्रक बनाने पर विचार करें जटिल दार्शनिक डेटा के लिए
  • प्रकार को अधिक पढ़ने योग्य बनाने के लिए प्रारूप का उपयोग करें
  • NestedArrayAsTable का उपयोग करें = सच जब नस्टेड संरचनाओं के बेहतर प्रबंधन के लिए उपलब्ध है
  • अविश्वसनीय रूप से जटिल संरचनाओं के लिए , आयात करने से पहले JSON को पूर्व-प्रसंस्करण करने पर विचार करें

आम समस्याएं और समाधान

IssueSolution
एकल कोशिकाओं के रूप में दिखाई देते हैंEnable ArrayAsTable और NestedArrayAsTable विकल्प
डेटा रिश्ते खो गए हैंरिश्ते के स्तंभों के साथ कई तालिकाओं / शीट्स बनाएं
स्तंभ नाम गलत हैंका उपयोग करें DateTimeGroupSeparator नामों को अनुकूलित करने का विकल्प
बड़ी फ़ाइलों के साथ स्मृति समस्याएंJSON को टुकड़ों में संसाधित करें या स्ट्रीमिंग दृष्टिकोण का उपयोग करें

More in this category