mirror of
https://github.com/gchq/CyberChef.git
synced 2025-04-20 14:56:19 -04:00
feat: support boolean and null in JSON to CSV
This commit is contained in:
parent
037590f831
commit
69e59916e2
2 changed files with 16 additions and 2 deletions
|
@ -114,8 +114,11 @@ class JSONToCSV extends Operation {
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
escapeCellContents(data, force=false) {
|
escapeCellContents(data, force=false) {
|
||||||
if (typeof data === "number") data = data.toString();
|
if (data !== "string") {
|
||||||
if (force && typeof data !== "string") data = JSON.stringify(data);
|
const isPrimitive = data == null || typeof data !== "object";
|
||||||
|
if (isPrimitive) data = `${data}`;
|
||||||
|
else if (force) data = JSON.stringify(data);
|
||||||
|
}
|
||||||
|
|
||||||
// Double quotes should be doubled up
|
// Double quotes should be doubled up
|
||||||
data = data.replace(/"/g, '""');
|
data = data.replace(/"/g, '""');
|
||||||
|
|
|
@ -46,6 +46,17 @@ TestRegister.addTests([
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "JSON to CSV: boolean and null as values",
|
||||||
|
input: JSON.stringify({a: false, b: null, c: 3}),
|
||||||
|
expectedOutput: "a,b,c\r\nfalse,null,3\r\n",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
op: "JSON to CSV",
|
||||||
|
args: [",", "\\r\\n"]
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "JSON to CSV: JSON as an array",
|
name: "JSON to CSV: JSON as an array",
|
||||||
input: JSON.stringify([{a: 1, b: "2", c: 3}]),
|
input: JSON.stringify([{a: 1, b: "2", c: 3}]),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue