java जावा में जेएसओएन को एक्सएलएस/सीएसवी में परिवर्तित करना




json excel (3)

क्या किसी के पास JSON दस्तावेज़ को XLS / CSV फ़ाइल में कनवर्ट करने के लिए कोई नमूना जावा कोड है? मैंने Google पर खोजने की कोशिश की है लेकिन इसका कोई फायदा नहीं हुआ है।


एक JSON दस्तावेज़ मूल रूप से सूचियों और शब्दकोशों के होते हैं। एक द्वि-आयामी तालिका पर इस तरह के डेटास्ट्रक्चर को मैप करने का कोई स्पष्ट तरीका नहीं है।


आप केवल एक JSON सरणी को CSV फ़ाइल में परिवर्तित कर सकते हैं।

आइए कहें, आपके पास निम्न की तरह JSON है:

{"infile": [{"field1": 11,"field2": 12,"field3": 13},
            {"field1": 21,"field2": 22,"field3": 23},
            {"field1": 31,"field2": 32,"field3": 33}]}

चलिए इसे csv में परिवर्तित करने के लिए कोड देखते हैं:

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.json.CDL;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class JSON2CSV {
    public static void main(String myHelpers[]){
        String jsonString = "{\"infile\": [{\"field1\": 11,\"field2\": 12,\"field3\": 13},{\"field1\": 21,\"field2\": 22,\"field3\": 23},{\"field1\": 31,\"field2\": 32,\"field3\": 33}]}";

        JSONObject output;
        try {
            output = new JSONObject(jsonString);


            JSONArray docs = output.getJSONArray("infile");

            File file=new File("/tmp2/fromJSON.csv");
            String csv = CDL.toString(docs);
            FileUtils.writeStringToFile(file, csv);
        } catch (JSONException e) {
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }        
    }

}

अब आपको जेएसओएन से उत्पन्न सीएसवी मिला है।

इसे ऐसा दिखना चाहिए:

field1,field2,field3
11,22,33
21,22,23
31,32,33

मेवेन निर्भरता की तरह था,

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
</dependency>

आप सीएसवी प्रारूप में कनवर्ट करने के लिए कॉमन्स सीएसवी का उपयोग कर सकते हैं। या एक्सएलएस में कनवर्ट करने के लिए पीओआई का उपयोग करें। यदि आपको एक्सएलएस में परिवर्तित करने के लिए सहायक की आवश्यकता है, तो आप jxls का उपयोग कर सकते हैं, यह जावा बीन (या सूची) को अभिव्यक्ति भाषा के साथ एक्सेल में परिवर्तित कर सकता है।

असल में, जेसन डॉक्टर शायद एक जेसन सरणी है, है ना? तो यह वही होगा। नतीजा सूची होगी, और आप केवल उस संपत्ति को लिखते हैं जिसे आप एक्सेल प्रारूप में प्रदर्शित करना चाहते हैं जो jxls द्वारा पढ़ा जाएगा। http://jxls.sourceforge.net/reference/collections.html देखें

यदि समस्या यह है कि json jxls एक्सेल संपत्ति में पढ़ा नहीं जा सकता है, तो इसे पहले जावा बीन के संग्रह में क्रमबद्ध करें।





xls