JSON ਤੋਂ CSV ਬਦਲਾਅ ਕੀ ਹੈ?
JSON (JavaScript Object Notation, RFC 8259) ਸੰਰਚਿਤ ਡੇਟਾ ਲਈ ਇੱਕ ਰੁੱਖ-ਆਕਾਰ ਟੈਕਸਟ ਫਾਰਮੈਟ ਹੈ; CSV (Comma-Separated Values, RFC 4180) ਇੱਕ ਸਮਤਲ, ਸਾਰਣੀ ਟੈਕਸਟ ਫਾਰਮੈਟ ਹੈ। JSON ਨੂੰ CSV ਵਿੱਚ ਬਦਲਣ ਨਾਲ ਉਹ ਰੁੱਖ ਰੋਵਾਂ ਅਤੇ ਕਾਲਮਾਂ ਵਿੱਚ ਫਲੈਟਨ ਹੋ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਜੋ ਡੇਟਾਸੈੱਟ API ਜਵਾਬ ਵਜੋਂ ਜੰਮਿਆ ਸੀ ਉਹ ਇੱਕ ਵੀ ਰੋ ਮੁੜ-ਟਾਈਪ ਕੀਤੇ ਬਿਨਾਂ ਸਪ੍ਰੈਡਸ਼ੀਟ ਵਿੱਚ ਸਾਫ਼-ਸਾਫ਼ ਖੁੱਲ੍ਹਦਾ ਹੈ।
JSON ਤੋਂ CSV ਬਦਲਾਅ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ?
ਹਰ ਬਦਲਾਅ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਲੋਕਲੀ ਚੱਲਦਾ ਹੈ। ਉੱਚ-ਪੱਧਰੀ ਕਦਮ:
JSON.parseਇਨਪੁੱਟ ਜਾਂਚਦਾ ਹੈ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਇਹ ਰਿਕਾਰਡਾਂ ਦੀ ਟੌਪ-ਲੈਵਲ ਐਰੇ ਹੈ। ਜੇ ਬ੍ਰੈਕਟ, ਕੌਮੇ ਜਾਂ ਕੋਟ ਕੀਤੀਆਂ ਕੁੰਜੀਆਂ ਮੇਲ ਨਾ ਖਾਣ ਤਾਂ ਇੱਕ ਸਪੱਸ਼ਟ ਗਲਤੀ ਦਿਖਦੀ ਹੈ।- ਲੇਖਕ ਤੁਹਾਡੇ ਰਿਕਾਰਡਾਂ ਤੋਂ ਹੈਡਰ ਕਾਲਮ ਕੱਢਦਾ ਹੈ। ਟੌਗਲ ਅਨੁਸਾਰ ਇਹ ਜਾਂ ਤਾਂ ਦੇਖੀ ਹਰ ਕੁੰਜੀ ਦਾ ਮੇਲ ਹੁੰਦਾ ਹੈ, ਜਾਂ ਸਿਰਫ਼ ਪਹਿਲੇ ਰਿਕਾਰਡ ਦੀਆਂ ਕੁੰਜੀਆਂ।
- ਨੈਸਟਡ ਆਬਜੈਕਟ ਡੌਟ-ਕੁੰਜੀਆਂ ਵਿੱਚ (
user.id,user.city) ਫਲੈਟਨ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਜਾਂ ਤੁਹਾਡੀ ਪਸੰਦ ਅਨੁਸਾਰ ਇੱਕੋ JSON ਸੈੱਲ ਵਜੋਂ ਸੀਰੀਅਲਾਈਜ਼ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਆਬਜੈਕਟਾਂ ਅੰਦਰਲੀਆਂ ਐਰੇ ਦੋਵੇਂ ਤਰੀਕਿਆਂ ਵਿੱਚ JSON-ਸਟ੍ਰਿੰਗੀਫਾਈ ਹੁੰਦੀਆਂ ਹਨ। - ਹਰ ਸੈੱਲ RFC 4180 ਅਨੁਸਾਰ ਅਸਕੇਪ ਹੁੰਦਾ ਹੈ: ਡੀਲਿਮੀਟਰ, ਡਬਲ ਕੋਟ ਜਾਂ ਲਾਈਨ-ਬਰੇਕ ਵਾਲਾ ਕੋਈ ਵੀ ਮੁੱਲ ਕੋਟਾਂ ਵਿੱਚ ਲਪੇਟਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਅੰਦਰਲੇ ਕੋਟ ਦੁੱਗਣੇ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਰੋਵਾਂ
\r\nਲਾਈਨ-ਅੰਤਾਂ ਨਾਲ ਜੁੜਦੀਆਂ ਹਨ। - CSV ਰੀਡ-ਓਨਲੀ ਆਉਟਪੁੱਟ ਬਾਕਸ ਵਿੱਚ ਉੱਤਰਦੀ ਹੈ, ਅਤੇ ਇੱਕ ਡਾਊਨਲੋਡ ਲਿੰਕ
text/csv;charset=utf-8MIME ਟਾਈਪ ਨਾਲ ਇੱਕBlobਬਣਾਉਂਦਾ ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਫਾਈਲ ਨੂੰ ਇੱਕ ਕਲਿੱਕ ਨਾਲ ਸੇਵ ਕਰ ਸਕੋ।
ਇਸ ਟੂਲ ਨਾਲ JSON ਨੂੰ CSV ਵਿੱਚ ਕਿਉਂ ਬਦਲੋ?
- ਪ੍ਰਾਈਵੇਸੀ: ਹਰ ਪਾਰਸ, ਫਲੈਟਨ, ਅਤੇ ਲਿਖਣ ਦਾ ਪਾਸ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਹੁੰਦਾ ਹੈ। ਡੇਟਾ ਕਦੇ ਸਾਡੇ ਸਰਵਰਾਂ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚਦਾ।
- ਸਹੀਤਾ: ਲੇਖਕ RFC 4180 ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ।
Bob, Jr.ਵਰਗਾ ਮੁੱਲ"Bob, Jr."ਵਜੋਂ ਵਾਪਸ ਆਉਂਦਾ ਹੈ — ਇੱਕ ਕੋਟ ਕੀਤਾ ਸੈੱਲ, ਦੋ ਕਾਲਮ ਨਹੀਂ — ਅਤੇ ਏਮਬੈੱਡ ਕੀਤੀਆਂ ਨਿਊਲਾਈਨਾਂ ਜਾਂ ਕੋਟ ਜਿਉਂ ਦੇ ਤਿਉਂ ਰਹਿੰਦੇ ਹਨ। - ਸਪ੍ਰੈਡਸ਼ੀਟ-ਤਿਆਰ: ਆਉਟਪੁੱਟ ਸਿੱਧਾ Excel ਜਾਂ Google Sheets ਵਿੱਚ ਪੇਸਟ ਹੁੰਦੀ ਹੈ, ਹੈਡਰ ਕਾਲਮ ਤੁਹਾਡੀਆਂ ਕੁੰਜੀਆਂ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਕੱਢੇ ਹੁੰਦੇ ਹਨ, ਇਸ ਲਈ ਡੇਟਾ ਵਰਤੋਂਯੋਗ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਕੋਈ ਹੱਥੀਂ ਸਫਾਈ ਨਹੀਂ ਚਾਹੀਦੀ।
- ਲਚਕੀਲਾਪਣ: ਨੈਸਟਡ ਆਬਜੈਕਟਾਂ ਨੂੰ ਡੌਟ-ਕੁੰਜੀਆਂ ਵਿੱਚ ਫਲੈਟਨ ਕਰੋ ਜਾਂ ਇੱਕੋ ਸੈੱਲ ਵਜੋਂ ਸਟ੍ਰਿੰਗੀਫਾਈ ਕਰੋ, ਗੈਰ-ਕੌਮਾ CSV ਡਾਇਲੈਕਟਾਂ ਲਈ ਕੋਈ ਵੀ ਡੀਲਿਮੀਟਰ ਚੁਣੋ, ਅਤੇ ਚੁਣੋ ਕਿ ਹੈਡਰ ਹਰ ਕੁੰਜੀ ਤੋਂ ਆਉਣ ਜਾਂ ਸਿਰਫ਼ ਪਹਿਲੇ ਰਿਕਾਰਡ ਤੋਂ।
JSON ਤੋਂ CSV ਬਦਲਾਅ ਦੀਆਂ ਆਮ ਵਰਤੋਂ ਕੀ ਹਨ?
JSON ਨੂੰ CSV ਵਿੱਚ ਫਲੈਟਨ ਕਰਨ ਦਾ ਕੰਮ ਡੇਟਾ ਕੰਮ ਅਤੇ ਟੂਲਿੰਗ ਵਿੱਚ ਹਰ ਥਾਂ ਦਿਖਦਾ ਹੈ:
- ਡੇਟਾ ਐਕਸਪੋਰਟ: API ਜਵਾਬ ਨੂੰ CSV ਫਾਈਲ ਵਿੱਚ ਬਦਲਣਾ ਜੋ ਤੁਹਾਡੀ ਵਿੱਤ, ਓਪਸ, ਜਾਂ ਪ੍ਰੋਡਕਟ ਟੀਮ Excel ਜਾਂ Google Sheets ਵਿੱਚ ਖੋਲ੍ਹ ਸਕੇ।
- ਰਿਪੋਰਟਿੰਗ: ਪਿਵੋਟ ਟੇਬਲ, ਚਾਰਟ ਜਾਂ ਫਾਰਮੂਲਿਆਂ ਦੇ ਤੇਜ਼ ਕਾਲਮ ਲਈ JSON ਕੁਐਰੀ ਨਤੀਜੇ ਨੂੰ ਸਪ੍ਰੈਡਸ਼ੀਟ ਵਿੱਚ ਪਾਉਣਾ। ਇਸ ਤਰ੍ਹਾਂ ਦਾ ਕੰਮ ਕੱਚੇ JSON ਉੱਤੇ ਕਰਨਾ ਔਖਾ ਹੁੰਦਾ ਹੈ।
- ਸਪ੍ਰੈਡਸ਼ੀਟ ਸਮੀਖਿਆ: ਨੈਸਟਡ JSON ਕਾਨਫਿਗ (ਸੈਟਿੰਗਾਂ, ਫੀਚਰ ਫਲੈਗ, A/B ਵੇਰੀਐਂਟ) ਨੂੰ CSV ਵਿੱਚ ਫਲੈਟਨ ਕਰੋ ਤਾਂ ਜੋ ਗੈਰ-ਤਕਨੀਕੀ ਸਮੀਖਿਅਕ ਇਸਨੂੰ ਸੈੱਲ-ਦਰ-ਸੈੱਲ ਪੜ੍ਹ ਅਤੇ ਸੰਪਾਦਿਤ ਕਰ ਸਕਣ।
JSON ਤੋਂ CSV ਉਦਾਹਰਣ ਕਿਵੇਂ ਦਿਖਦੀ ਹੈ?
[{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] ਪੇਸਟ ਕਰੋ, ਡੀਲਿਮੀਟਰ ਨੂੰ ਕੌਮੇ ਉੱਤੇ ਰਹਿਣ ਦਿਓ, ਅਤੇ CONVERT ਦਬਾਓ। ਤੁਹਾਨੂੰ ਤਿੰਨ ਲਾਈਨਾਂ ਮਿਲਦੀਆਂ ਹਨ: ਇੱਕ name,age ਹੈਡਰ ਰੋ, ਇੱਕ Alice,30 ਡੇਟਾ ਰੋ, ਅਤੇ ਇੱਕ "Bob, Jr.",25 ਰੋ। ਉਹੀ ਏਮਬੈੱਡ ਕੀਤਾ ਕੌਮਾ ਭੋਲੇ ਜੋੜ ਨੂੰ ਅੜਚਨ ਪਾਉਂਦਾ ਹੈ — ਇੱਥੇ ਇਹ RFC 4180 ਕੋਟਿੰਗ ਚਾਲੂ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਸੈੱਲ ਪੂਰਾ ਰਹਿੰਦਾ ਹੈ।
ਕੀ ਇਹ JSON ਤੋਂ CSV ਕਨਵਰਟਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਮੇਰੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਚੱਲਦਾ ਹੈ?
ਹਾਂ। ਹਰ ਪਾਰਸ, ਫਲੈਟਨ, ਅਤੇ ਲਿਖਣ ਦਾ ਪਾਸ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਟੈਬ ਵਿੱਚ JavaScript ਵਜੋਂ ਲੋਕਲੀ ਚੱਲਦਾ ਹੈ। ਟੂਲ fetch, XMLHttpRequest, ਜਾਂ navigator.sendBeacon ਬਿਲਕੁਲ ਨਹੀਂ ਕਾਲ ਕਰਦਾ, ਇਸ ਲਈ ਤੁਹਾਡੇ JSON ਪੇਲੋਡ ਕਦੇ ਸਾਡੇ ਸਰਵਰਾਂ, ਕਿਸੇ ਥਰਡ-ਪਾਰਟੀ ਕਨਵਰਟਰ ਜਾਂ ਕਿਸੇ ਐਨਾਲਿਟਿਕਸ ਪਾਈਪਲਾਈਨ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚਦੇ। ਪੰਨਾ ਇੱਕ ਵਾਰ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ ਟੂਲ ਔਫਲਾਈਨ ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਕਿਸੇ ਰਨਟਾਈਮ API ਨਿਰਭਰਤਾ ਤੋਂ ਬਿਨਾਂ ਇੱਕ ਸਥਿਰ HTML/CSS/JS ਬੰਡਲ ਹੈ।
ਇਹ ਕਨਵਰਟਰ ਵੱਧ ਤੋਂ ਵੱਧ ਕਿੰਨਾ ਵੱਡਾ ਇਨਪੁੱਟ ਸੰਭਾਲ ਸਕਦਾ ਹੈ?
ਕਨਵਰਟਰ ਪੂਰਾ ਇਨਪੁੱਟ ਮੈਮੋਰੀ ਵਿੱਚ ਬਫਰ ਕਰਦਾ ਹੈ ਅਤੇ ਮੁੱਖ ਥ੍ਰੈੱਡ ਤੇ ਸਮਕਾਲੀ ਰੂਪ ਵਿੱਚ ਚੱਲਦਾ ਹੈ, ਇਸ ਲਈ ਵਿਹਾਰਕ ਹੱਦਾਂ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਨਿਰਭਰ ਹਨ। ਆਧੁਨਿਕ ਲੈਪਟਾਪ ਤੇ ਲਗਭਗ 10 MB ਤੱਕ ਦੀ JSON ਐਰੇ (ਲਗਭਗ 1,00,000 ਆਮ ਰਿਕਾਰਡ) ਬਿਨਾਂ ਧਿਆਨਯੋਗ ਰੁਕਾਵਟ ਦੇ CSV ਵਿੱਚ ਫਲੈਟਨ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਸ ਤੋਂ ਅੱਗੇ ਲੇਖਕ ਚੱਲਦੇ ਸਮੇਂ UI ਅਟਕ ਸਕਦੀ ਹੈ। Web Worker ਅਤੇ ਚੰਕ ਕੀਤੇ ਲੇਖਕ ਨਾਲ ਸਟ੍ਰੀਮ ਕੀਤਾ ਬਦਲਾਅ ਇੱਕ ਯੋਜਨਾਬੱਧ ਅਗਲਾ ਸੁਧਾਰ ਹੈ — ਹੁਣ ਲਈ, ਬਹੁਤ ਵੱਡੇ ਡੇਟਾਸੈੱਟਾਂ ਨੂੰ ਪੇਸਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵੰਡੋ।
ਲੇਖਕ ਕੌਮੇ, ਕੋਟ ਜਾਂ ਨਿਊਲਾਈਨ ਵਾਲੇ ਮੁੱਲਾਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਦਾ ਹੈ?
RFC 4180 ਅਨੁਸਾਰ। ਸਰਗਰਮ ਡੀਲਿਮੀਟਰ, ਡਬਲ ਕੋਟ, ਇੱਕ CR, ਜਾਂ ਇੱਕ LF ਵਾਲਾ ਕੋਈ ਵੀ ਮੁੱਲ ਡਬਲ ਕੋਟਾਂ ਵਿੱਚ ਲਪੇਟਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਅੰਦਰਲੇ ਕੋਟ ਦੁੱਗਣੇ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਇਸ ਲਈ Bob, Jr. ਵਰਗਾ ਨਾਮ ਦੋ ਕਾਲਮਾਂ ਵਿੱਚ ਫੈਲਣ ਦੀ ਬਜਾਏ "Bob, Jr." ਇੱਕੋ ਸੈੱਲ ਬਣ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਬਹੁ-ਲਾਈਨ ਵੇਰਵਾ ਰੋ ਤੋੜਨ ਦੀ ਬਜਾਏ ਇੱਕੋ ਸੈੱਲ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ। ਇਹ ਉਹ ਹਿੱਸਾ ਹੈ ਜੋ ਭੋਲਾ join(',') ਗਲਤ ਕਰਦਾ ਹੈ।
CSV ਵਿੱਚ ਬਦਲਣ ਵੇਲੇ ਨੈਸਟਡ JSON ਆਬਜੈਕਟਾਂ ਦਾ ਕੀ ਹੁੰਦਾ ਹੈ?
ਨੈਸਟਡ ਆਬਜੈਕਟ Nested objects ਟੌਗਲ ਅਨੁਸਾਰ ਸੰਭਾਲੇ ਜਾਂਦੇ ਹਨ। Flatten ਮੋਡ ਵਿੱਚ (ਡਿਫੌਲਟ), ਕੁੰਜੀਆਂ ਡੌਟ-ਜੁੜੀਆਂ ਹੁੰਦੀਆਂ ਹਨ — {"user":{"id":1,"city":"Paris"}} user.id ਅਤੇ user.city ਕਾਲਮ ਬਣਦਾ ਹੈ। Stringify ਮੋਡ ਵਿੱਚ, ਨੈਸਟਡ ਆਬਜੈਕਟ ਇੱਕ ਸਿੰਗਲ JSON ਸੈੱਲ ਮੁੱਲ ਵਜੋਂ ਸੀਰੀਅਲਾਈਜ਼ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
CSV ਆਉਟਪੁੱਟ ਕਿਹੜੇ ਡੀਲਿਮੀਟਰ ਵਰਤ ਸਕਦੀ ਹੈ?
ਚਾਰ: ਕੌਮਾ (,, RFC 4180 ਡਿਫੌਲਟ), ਸੈਮੀਕੋਲਨ (;, ਯੂਰਪੀਅਨ ਲੋਕੇਲਾਂ ਵਿੱਚ ਆਮ), ਟੈਬ (\t, TSV ਡਾਇਲੈਕਟ), ਅਤੇ ਪਾਈਪ (|)। ਜੋ ਤੁਹਾਡਾ ਅਗਲਾ ਟੂਲ ਉਮੀਦ ਕਰਦਾ ਹੈ ਉਹ ਚੁਣੋ। ਲੇਖਕ ਚੁਣੇ ਹੋਏ ਡੀਲਿਮੀਟਰ ਵਾਲੇ ਕਿਸੇ ਵੀ ਸੈੱਲ ਨੂੰ ਅਸਕੇਪ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਚੋਣ ਕਦੇ ਮੁੱਲ ਨੂੰ ਖਰਾਬ ਨਹੀਂ ਕਰਦੀ।
ਇਹ JSON ਤੋਂ CSV ਕਨਵਰਟਰ ਤੁਹਾਡੀ ਐਰੇ ਨੂੰ ਫਲੈਟਨ ਕਰਦਾ ਹੈ ਅਤੇ RFC 4180-ਅਨੁਕੂਲ ਆਉਟਪੁੱਟ ਦਿੰਦਾ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਇੱਕ ਬਾਈਟ ਵੀ ਅਪਲੋਡ ਕੀਤੇ ਬਿਨਾਂ ਸਿੱਧਾ ਸਪ੍ਰੈਡਸ਼ੀਟ, ਰਿਪੋਰਟ ਜਾਂ ਕੋਡ ਸਮੀਖਿਆ ਵਿੱਚ ਪੇਸਟ ਕਰ ਸਕਦੇ ਹੋ। ਉਲਟਾ ਚਾਹੀਦਾ ਹੈ? CSV ਤੋਂ JSON ਕਨਵਰਟਰ ਦੂਜੀ ਦਿਸ਼ਾ ਵਿੱਚ ਪਾਰਸ ਕਰਦਾ ਹੈ।