亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用純JS實(shí)現(xiàn)JSON轉(zhuǎn)CSV的技巧全攻略

 更新時間:2025年06月26日 08:32:25   作者:燭陰  
在數(shù)據(jù)處理和導(dǎo)出方面,JSON 和 CSV 格式是兩個常見的角色,今天,我們將介紹如何在純 JavaScript 中,利用開源庫 @json2csv/plainjs 輕松實(shí)現(xiàn)從 JSON 轉(zhuǎn)換到 CSV,幫助你高效處理數(shù)據(jù),需要的朋友可以參考下

引言

在數(shù)據(jù)處理和導(dǎo)出方面,JSON 和 CSV 格式是兩個常見的角色。JSON(JavaScript Object Notation)以其良好的可讀性和靈活性被廣泛應(yīng)用于數(shù)據(jù)存儲和傳輸,而CSV(Comma-Separated Values)則因其簡潔易讀、方便導(dǎo)入到各種表格軟件中而深受歡迎。今天,我們將介紹如何在純 JavaScript 中,利用開源庫 @json2csv/plainjs 輕松實(shí)現(xiàn)從 JSON 轉(zhuǎn)換到 CSV,幫助你高效處理數(shù)據(jù)。

一、什么是 @json2csv/plainjs?

@json2csv/plainjsjson2csv 的一種輕量版(純原生 JS 實(shí)現(xiàn)),無需依賴任何第三方庫或環(huán)境(比如 Node.js 特定模塊),非常適合瀏覽器或純 JS 環(huán)境下使用。

主要功能:

  • 將 JSON 對象或數(shù)組轉(zhuǎn)換成 CSV 格式
  • 支持自定義字段和格式
  • 簡單易用,無復(fù)雜配置

二、基礎(chǔ)用法:將簡單 JSON 轉(zhuǎn)為 CSV

示例:轉(zhuǎn)換一組用戶數(shù)據(jù)

import { Parser } from '@json2csv/plainjs';

// 示例數(shù)據(jù)
const myData = [
    { name: 'John', age: 30, city: 'New York' },
    { name: 'Jane', age: 25, city: 'Los Angeles' },
    { name: 'Doe', age: 35, city: 'Chicago' }
];

// 基本轉(zhuǎn)換示例
try {
    const basicOpts = {};
    const basicParser = new Parser(basicOpts);
    const basicCsv = basicParser.parse(myData);
    console.log('基本轉(zhuǎn)換結(jié)果:');
    console.log(basicCsv);
} catch (err) {
    console.error('基本轉(zhuǎn)換出錯:', err);
}

輸出:

"name","age","city"
"John",30,"New York"
"Jane",25,"Los Angeles"
"Doe",35,"Chicago"

說明

  • parse() 方法將數(shù)組中的每個對象作為一行
  • 默認(rèn)會提取所有對象的所有鍵作為字段名

三、定制轉(zhuǎn)換:選擇特定字段

我們可以通過 fields 選項(xiàng),指定輸出哪些字段,保證輸出內(nèi)容的可控性。

示例:只導(dǎo)出 name 和 email

import { Parser } from '@json2csv/plainjs';

const users = [
    { name: 'Alice', age: 30, email: 'alice@example.com' },
    { name: 'Bob', age: 25, email: 'bob@example.com' }
];

const customOpts = { fields: ['name', 'email'] };
const customParser = new Parser(customOpts);
const csv = customParser.parse(users);
console.log(csv);

輸出:

name,email
Alice,alice@example.com
Bob,bob@example.com

說明

  • 只提取配置中列出的字段,支持自定義順序

四、深入:使用復(fù)雜參數(shù)定制格式

@json2csv/plainjs 提供多種選項(xiàng),幫助你控制輸出格式。

1. 自定義字段標(biāo)題

import { Parser } from '@json2csv/plainjs';

const users = [
    { name: 'Alice', age: 30, email: 'alice@example.com' },
    { name: 'Bob', age: 25, email: 'bob@example.com' }
];

const fields = [
    { label: '姓名', value: 'name' },
    { label: '年齡', value: 'age' }
];

const customOpts = { fields };
const customParser = new Parser(customOpts);
const csv = customParser.parse(users);
console.log(csv);

輸出:

姓名,年齡
Alice,30
Bob,25

2. 添加換行符和其他格式控制

除了基本功能,你還可以通過選項(xiàng)調(diào)整字段分隔符、換行符等。

import { Parser } from '@json2csv/plainjs';

const users = [
    { name: 'Alice', age: 30, email: 'alice@example.com' },
    { name: 'Bob', age: 25, email: 'bob@example.com' }
];

const fields = [
    { label: '姓名', value: 'name' },
    { label: '年齡', value: 'age' }
];

const options = {
    fields,
    delimiter: ';', // 使用分號作為字段分隔符
    eol: '\r\n'     // 換行符使用 Windows 風(fēng)格
    
};

const customParser = new Parser(options);
const csv = customParser.parse(users);
console.log(csv);

五、實(shí)戰(zhàn)案例:導(dǎo)出嵌套JSON

假設(shè)你的 JSON 中包含嵌套對象,如何處理?

import { Parser } from '@json2csv/plainjs';

const data = [
    {
        id: 1,
        name: 'Alice',
        address: { city: 'Beijing', street: 'Chao Yang' }
    },
    {
        id: 2,
        name: 'Bob',
        address: { city: 'Shanghai', street: 'Pudong' }
    }
];

// 通過指定字段的路徑,將嵌套對象扁平化
const fields = [
    { label: 'ID', value: 'id' },
    { label: '名稱', value: 'name' },
    { label: '城市', value: 'address.city' },
    { label: '街道', value: 'address.street' }
];

const customParser = new Parser({fields});
const csv = customParser.parse(data);
console.log(csv);

輸出:

ID,名稱,城市,街道
1,Alice,Beijing,Chao Yang
2,Bob,Shanghai,Pudong

結(jié)語

到此這篇關(guān)于利用純JS實(shí)現(xiàn)JSON轉(zhuǎn)CSV的技巧全攻略的文章就介紹到這了,更多相關(guān)JavaScript JSON轉(zhuǎn)CSV內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS實(shí)現(xiàn)無限輪播無倒退效果

    JS實(shí)現(xiàn)無限輪播無倒退效果

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)無限輪播無倒退效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 微信小程序?qū)崿F(xiàn)多選框全選操作

    微信小程序?qū)崿F(xiàn)多選框全選操作

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)多選框全選操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JS中用三種方式實(shí)現(xiàn)導(dǎo)航菜單中的二級下拉菜單

    JS中用三種方式實(shí)現(xiàn)導(dǎo)航菜單中的二級下拉菜單

    我們在淘寶、搜狐等大型網(wǎng)站上都可以看到使用的一些二級下拉菜單,比如下面這張圖片。那么如何實(shí)現(xiàn)導(dǎo)航菜單欄中的二級下拉菜單呢?下面小編給大家分享JS中用三種方式實(shí)現(xiàn)導(dǎo)航菜單中的二級下拉菜單,感興趣的朋友一起看看吧
    2016-10-10
  • js+css3實(shí)現(xiàn)炫酷時鐘

    js+css3實(shí)現(xiàn)炫酷時鐘

    這篇文章主要為大家詳細(xì)介紹了js+css3實(shí)現(xiàn)炫酷時鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • innerHTML,outerHTML,innerTEXT三者之間的區(qū)別

    innerHTML,outerHTML,innerTEXT三者之間的區(qū)別

    innerHTML,outerHTML,innerTEXT三者之間的區(qū)別...
    2007-01-01
  • js中apply方法的使用詳細(xì)解析

    js中apply方法的使用詳細(xì)解析

    本文是對js中apply方法的使用進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • 正則表達(dá)式替換html元素屬性的方法

    正則表達(dá)式替換html元素屬性的方法

    下面小編就為大家?guī)硪黄齽t表達(dá)式替換html元素屬性的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 微信小程序圖片自適應(yīng)實(shí)現(xiàn)解析

    微信小程序圖片自適應(yīng)實(shí)現(xiàn)解析

    這篇文章主要介紹了微信小程序圖片自適應(yīng)實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • JavaScript onclick事件使用方法詳解

    JavaScript onclick事件使用方法詳解

    這篇文章主要介紹了JavaScript onclick事件使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • js實(shí)現(xiàn)數(shù)組冒泡排序、快速排序原理

    js實(shí)現(xiàn)數(shù)組冒泡排序、快速排序原理

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)數(shù)組冒泡排序、快速排序的原理,感興趣的小伙伴們可以參考一下
    2016-03-03

最新評論