html Salvar Objeto em JSON,CSV,TSV

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html Salvar Objeto em JSON,CSV,TSV相关的知识,希望对你有一定的参考价值。

(function() {
  var br = "\n"
  function extend(o) {
    Array.prototype.slice.call(arguments, 1).forEach(function(source) {
      if (!source) return
      for (var keys = Object.keys(source), i = 0; i < keys.length; i++) {
        var key = keys[i]
        o[key] = source[key]
      }
    })
    return o
  }
  function unquote(str) {
    var match
    return (match = str.match(/(['"]?)(.*)\1/)) && match[2] || str
  }
  function comments(line) {
    return !/#@/.test(line[0])
  }
  function getValues(line, sep) {
    return line.split(sep).map(function(value) {
      var value = unquote(value);
      var numeric = +value;
      return (numeric === numeric) ? numeric : value; // take advantage of NaN !== NaN
    })
  }
  function Parser(sep, options) {
    var opt = extend({
      header: true
    }, options)
    this.sep = sep
    this.header = opt.header
  }
  Parser.prototype.stringify = function(data) {
    var sep = this.sep,
      head = !!this.header,
      keys = (typeof data[0] === 'object') && Object.keys(data[0]),
      header = keys && keys.join(sep),
      output = head ? (header + br) : ''
    if (!data || !keys) return ''
    return output + data.map(function(obj) {
      var item = keys ? {} : []
      var values = keys.reduce(function(p, key) {
        p.push(obj[key])
        return p
      }, [])
      return values.join(sep)
    }).join(br)
  }
  Parser.prototype.parse = function(tsv) {
    var sep = this.sep,
      lines = tsv.split(/[\n\r]/).filter(comments),
      head = !!this.header,
      keys = head ? getValues(lines.shift(), sep) : {}
    if (lines.length < 1) return []
    return lines.reduce(function(output, line) {
      var item = head ? {} : []
      output.push(getValues(line, sep).reduce(function(item, val, i) {
        item[keys[i] || i] = val
        return item
      }, item))
      return output
    }, [])
  }
  // Export TSV parser as main, but also expose `.TSV`, `.CSV` and `.Parser`.
  var TSV = new Parser("\t")
  extend(TSV, {
    TSV: TSV,
    CSV: new Parser(","),
    Parser: Parser
  })
  if (typeof module !== 'undefined' && module.exports) {
    module.exports = TSV
  } else {
    this.TSV = TSV
  }
}).call(this)

var data = [{
  key: '1',
  name: '胡彦斌',
  age: 32,
  address: '西湖区湖底公园1号'
}, {
  key: '2',
  name: '张学友',
  age: 42,
  address: '西湖区湖底公园1号'
}];

function downloadJSON(a) {
  var json = JSON.stringify(data);
  a.href = "data:application/json;charset=utf-8," + json;
}

function downloadCSV(a) {
  var csv = TSV.CSV.stringify(data);
  console.log(csv)
  a.href = "data:text/csv;charset=utf-8,\ufeff" + csv;
}

function downloadTSV(a) {
  var tsv = TSV.stringify(data);
  console.log(tsv)
  a.href = "data:text/tsv;charset=utf-8,\ufeff" + tsv;
}
<p>Table data can be downloaded as JSON, CSV, TSV</p>

<a id="test" download="data.txt" href="data:text/txt;charset=utf-8,内容lalallaala">下载 TXT</a>

<a id="json" onclick="downloadJSON(this)" download="data.json" href="javascript:;">下载 JSON</a>

<a id="json" onclick="downloadCSV(this)" download="data.csv" href="javascript:;">下载 CSV</a>

<a id="json" onclick="downloadTSV(this)" download="data.tsv" href="javascript:;">下载 TSV</a>

以上是关于html Salvar Objeto em JSON,CSV,TSV的主要内容,如果未能解决你的问题,请参考以下文章

javascript Transformar Array em Objeto

javascript Verificar se objeto existe em um array

java Servlet que procesa un objeto basado en el input encontrado en una tabla HTML

text Objeto como una superclase

javascript Ajax - Enviar um objeto

JavaScript Javascript - Listar propiedades de un objeto