2010-08-30 12 views
10

क्या कोई जानता है कि सीएसवी यूआरएल फ़ाइल कैसे प्राप्त करें और इसे जेसन ऑब्जेक्ट में कैसे परिवर्तित करें ताकि मैं जेएस में Google चार्टिंग टूल्स का उपयोग कर सकूं?सीएसवी फ़ाइल को जेसन ऑब्जेक्ट में कनवर्ट करने योग्य

+0

आप जे एस में सीएसवी या किसी अन्य भाषा पार्स करने के लिए कोशिश कर रहे हैं और सिर्फ इतना है कि है जेएस के लिए आउटपुट जेएसओएन? –

+0

मैं सीएसवी फ़ाइलों को बैकएंड पर सी # में दो सरणी में पार्स करने में सक्षम था। अब मैं एक जेएस एपीआई चार्ट से जुड़ने के लिए जेएसओएन ऑब्जेक्ट बनाना चाहता हूं (जिसे मैं उन दो एरेज़ डेटा का उपयोग करके फ्रंट एंड पर उपयोग कर सकता हूं)। – locoboy

उत्तर

3

जहां तक ​​मुझे पता है, ज्यादातर परिदृश्यों के लिए, आप सीएसवी को एआरएस, मैट्रिक्स, या किसी भी जावास्क्रिप्ट ऑब्जेक्ट में अपने चार्टिंग टूल कन्वेंशन का पालन करते हुए बदल सकते हैं।

आप की आवश्यकता हो सकती:

  1. अपने चार्ट बनाने के उपकरण json में CSV फ़ाइल सामग्री
  2. Parse it
  3. लपेटें 2 से परिणाम प्राप्त करना
  4. अपने चार्टिंग पुस्तकालय कॉल
(?)

1 के लिए, यदि आपके डोमेन में सीएसवी फ़ाइल होस्ट की जाती है, तो आप एक साधारण XMLHttpRequest कर सकते हैं, अन्यथा यहां खोज करने का प्रयास करें एमी मूल नीति "।
मुश्किल हिस्सा बिंदु 2 है। मैंने सीएसवी फाइलों को हाथ से पार्स करने के लिए कई विफल प्रयास किए हैं (अर्धविराम मूल्य के हिस्से के रूप में निहित किया जा सकता है) ... लिंक देखें।

1

सीएसवी और जेएसओएन विभिन्न प्रारूप हैं। जेएसओएन पदानुक्रमित है जबकि सीएसवी मूल्यों की एक सूची का प्रतिनिधित्व करता है। तो मुझे लगता है कि आपको पहले सीएसवी (using a parser पाठ्यक्रम और not implementing yourself) का विश्लेषण करना होगा। यह पार्सर आपको वांछित प्रारूप प्राप्त करने के लिए जेएसओएन में क्रमबद्ध कर सकता है या शायद serializing (एक बार फिर parser का उपयोग कर) से पहले किसी अन्य ऑब्जेक्ट में परिवर्तित कर सकता है।

18

मुझे एहसास है कि यह एक पुराना सवाल है, लेकिन मैं इसे आज भी एक ही काम करने की आवश्यकता है और इसे करने के लिए एक स्क्रिप्ट लिखी है। आप इसे अपने github repo पर देख सकते हैं।

निम्नलिखित कोड को पूरा आप (jQuery का उपयोग) के बाद क्या कर रहे हैं:

$.ajax("http://my.domain.com/mycsvfile.csv", { 
    success: function(data) { 
     var jsonobject = csvjson.csv2json(data); 
     // Now use jsonobject to do some charting... 
    }, 
    error: function() { 
     // Show some error message, couldn't get the CSV file 
    } 
}); 

कोडिंग :)

+1

मैंने अभी कुछ फ़ाइल का त्वरित प्रोटोटाइप प्राप्त करने के लिए अपनी फ़ाइल का उपयोग किया है। एएलएल तब तक अच्छा लगा जब तक मुझे पता चला कि \ r वर्ण एक मोंगो में अपना रास्ता खोज रहे थे (मैंने पहले कभी नहीं देखा था)। कोड में कुछ बिंदुओं को myString.replace (/ \ r/gm, "") को साफ़ करने के लिए आवश्यक है। – joevallender

+0

@joevallender इसे इंगित करने के लिए धन्यवाद। किसी भी मौके पर आप अभी भी याद कर सकते हैं कि आपको क्या करना है और इसके लिए कोई मुद्दा पैदा कर सकता है?https://github.com/aaronsnoswell/csvjson.js/issues/new। – aaronsnoswell

+0

अगर मैं फ्लाई पर ऐसा नहीं कर रहा था तो मैं एक पुल अनुरोध जमा कर दूंगा, मैं अब कुछ नोट्स को कतार में छोड़ दूंगा – joevallender

1

उपयोग गाइड json करने के लिए csv फ़ाइल को पार्स करने के लिए इस कोड को खुश ...

function processFiles(files) { 
    var file = files[0]; 
    var reader = new FileReader(); 
    reader.onload = function (e) { 
     var output = document.getElementById("fileOutput"); 
     var texto = e.target.result; 
     csvJSON(texto); 
    }; 
    reader.readAsText(file); 
} 
function csvJSON(csv) { 
    var lines = csv.split("\n"); 
    var result = []; 
    var headers; 
    for (var i = 0; i < lines.length; i++) { 
     headers = lines[i].split("\n"); 
    } 
    var cont = 0; 
    for (var i = 0; i < lines.length; i++) { 

     var obj = {}; 
     var currentline = lines[i].split("\n"); 
     for (var j = 0; j < headers.length; j++) { 
      obj[cont] = currentline[j]; 
     } 
     cont++; 
     result.push(obj); 
    } 

    return JSON.stringify(result); //JSON 
} 
3

Papa Parse इसके लिए अच्छा है।

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
    <script src="libraries/PapaParse-4.1.2/papaparse.min.js"></script> 

    <script> 
    $(document).ready(function(){ 

     $("#submitbutton").click(function(){ 
      var myfile = $("#csvfile")[0].files[0]; 
      var json = Papa.parse(myfile, 
       { 
       header: true, 
       skipEmptyLines: true, 
       complete: function(results) { 
        console.log("Dataframe:", JSON.stringify(results.data)); 
        console.log("Column names:", results.meta.fields); 
        console.log("Errors:", results.errors); 
       } 
      }); 

     }) 
    }) 
    </script> 

</head> 

<body> 
    <form name="foo" method="post" enctype="multipart/form-data"> 
     <input id="csvfile" type="file" value="i"> 
    </form> 

    <button id="submitbutton" type="button">Upload CSV file!</button> 

</body> 

</html> 

अपलोड कर रहा है इस CSV:

+------+----------------+---------------+------------+ 
| Id | Petal.Length | Petal.Width | Species | 
+======+================+===============+============+ 
| 1 |  1.4  |  0.2  | setosa | 
+------+----------------+---------------+------------+ 
| 2 |  1.4  |  0.2  | setosa | 
+------+----------------+---------------+------------+ 
| 3 |  1.3  |  0.2  | setosa | 
+------+----------------+---------------+------------+ 
| 4 |  3.9  |  1.4  | versicolor | 
+------+----------------+---------------+------------+ 
| 5 |  3.5  |  1  | versicolor | 
+------+----------------+---------------+------------+ 
| 6 |  4.2  |  1.5  | versicolor | 
+------+----------------+---------------+------------+ 
| 7 |  5.4  |  2.3  | virginica | 
+------+----------------+---------------+------------+ 
| 8 |  5.1  |  1.8  | virginica | 
+------+----------------+---------------+------------+ 

आप कंसोल में इस उत्पादन मिल जाएगा:

Dataframe: [{"Id":"1","Petal.Length":"1.4","Petal.Width":"0.2","Species":"setosa"},{"Id":"2","Petal.Length":"1.4","Petal.Width":"0.2","Species":"setosa"},{"Id":"3","Petal.Length":"1.3","Petal.Width":"0.2","Species":"setosa"},{"Id":"4","Petal.Length":"3.9","Petal.Width":"1.4","Species":"versicolor"},{"Id":"5","Petal.Length":"3.5","Petal.Width":"1","Species":"versicolor"},{"Id":"6","Petal.Length":"4.2","Petal.Width":"1.5","Species":"versicolor"},{"Id":"7","Petal.Length":"5.4","Petal.Width":"2.3","Species":"virginica"},{"Id":"8","Petal.Length":"5.1","Petal.Width":"1.8","Species":"virginica"}] 
Column names: ["Id", "Petal.Length", "Petal.Width", "Species"] 
Errors: [] 
संबंधित मुद्दे