2012-06-29 6 views
17

Я пытаюсь преобразовать объектов JavaScript, установленный в формат CSVпреобразования объекта JSON в формат CSV в JavaScript

Вы можете получить представление Абт мой объект Javascript, если вы поместите его в онлайн-формате JSON парсер http://json.parser.online.fr/

Это, как я пытался Wrk его ... Б.Т. он плюхнулся .. http://jsfiddle.net/fHQzC/11/

Я пытаюсь взять целые значения, соответствующие значению «термин» и соответствующий подзаголовок в формат CSV

ожидаемый положил на это как

Time,Dec 9, 2012 
News,Germany,election, Egypt,Revolution, Japan, Earthquake 
Person,Obama, Beckham 
Title,Pearce Snubs Beckham         
Time,Dec 5, Birthday 
Person, Lebron James 
News,Italy,Euro 2012 Final 

Названия нагревает Национальные чемпионы

и можно загрузить файл CSV в Excel листе один я нашел в стеке был нт действительно полезно ...

+0

Я думаю, вы уже проверили http://stackoverflow.com/questions/4130849/convert-json-format-to-csv-format-for-ms-excel, и это не сработало для вас? – Ando

+0

yes У меня есть ... bt it did nt .. – user1371896

ответ

18

вам можно попробовать в качестве

$(document).ready(function() { 

     // Create Object 
     var items = [ 
       { name: "Item 1", color: "Green", size: "X-Large" }, 
       { name: "Item 2", color: "Green", size: "X-Large" }, 
       { name: "Item 3", color: "Green", size: "X-Large" }]; 

     // Convert Object to JSON 
     var jsonObject = JSON.stringify(items); 

     // Display JSON 
     $('#json').text(jsonObject); 

     // Convert JSON to CSV & Display CSV 
     $('#csv').text(ConvertToCSV(jsonObject)); 
    }); 

и функция ConvertToCSV

// JSON to CSV Converter 
     function ConvertToCSV(objArray) { 
      var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray; 
      var str = ''; 

      for (var i = 0; i < array.length; i++) { 
       var line = ''; 
       for (var index in array[i]) { 
        if (line != '') line += ',' 

        line += array[i][index]; 
       } 

       str += line + '\r\n'; 
      } 

      return str; 
     } 

Source

+0

my json немного сложнее, чем этот. – user1371896

+1

сложность не влияет на это, так как формат csv всегда останется таким же. –

+0

Ive уже пробовал этот ... Я нашел этот на стек раньше. – user1371896

1

Это мое решение

https://jsfiddle.net/dhou6y3o/

function iterateObject(obj) { 
    var value = '', header = ''; 
      for (name in obj) { 
      if (obj.hasOwnProperty(name)) { 
       if (isObject(obj[name])) { 
       var out = iterateObject(obj[name]); 
       value += out.value; 
       header += out.header; 
       } else { 
       value += removeNewLine(obj[name]) + '; '; 
       header += name + '; '; 
       } 
      } 
      } 
    return { 
    "value":value, 
    "header":header 
    }; 
} 
function isObject(obj) { 
    return (typeof obj === 'object'); 
} 
function removeNewLine(item) { 
    return item.toString().replace(/(\r\n|\n|\r)/gm,""); 
} 
1

Вот мое решение

function arrayToCSV(objArray) { 
    const array = typeof objArray !== 'object' ? JSON.parse(objArray) : objArray; 
    let str = `${Object.keys(array[0]).map(value => `"${value}"`).join(",")}` + '\r\n'; 

    return array.reduce((str, next) => { 
     str += `${Object.values(next).map(value => `"${value}"`).join(",")}` + '\r\n'; 
     return str; 
     }, str); 
} 

Пример:

let arr = [{name: "Essa", age: 25}]; 
console.log(arrayToCSV(arr)); 
Смежные вопросы