javascript - 如何使用 Javascript 将空格分隔的多行字符串转换为 json?
问题描述
我正在开发一个 Web 应用程序,用户可以将他们的 excel 数据(多行 2 列)复制到网站的文本区域。在同一页面点击提交按钮时,会将excel数据转换为JSON,在同一网页的不同文本区域显示JSON。
我已经有了一个 HTML 页面,只是不确定如何编写转换代码。(代码如下)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset = "utf-8" />
<title>Convert</title>
</head>
<body>
<h1>Convert Table Data (2 Columns) To JSON</h1>
<button onclick="convert()">Convert to JSON</button>
<br><br>
<textarea id="inputText" rows="50" cols="100"></textarea>
<textarea id="outputText" rows="50" cols="100" readonly></textarea>
<script>
var textarea = document.getElementById("inputText");
var textarea2 = document.getElementById("outputText");
function convert() {
// textarea2.value = textarea.value.convertToJSON......
}
</script>
</body>
</html>
以下是将 Excel 数据复制并粘贴到文本区域时的样子:
Amy apples
Betty oranges
Cathy watermelon
Daisy bananas
Edward pears
Fiona grapes
提交后预期结果将显示在不同的文本区域:
{
"Amy" : "apples",
"Betty" : "oranges",
"Cathy" : "watermelon",
"Daisy" : "bananas",
"Edward" : "pears",
"Fiona" : "grapes"
}
解决方案
您可以修剪字符串,然后将其拆分\n
为字符串数组,映射数组并按空格拆分项目。现在您可以将数组数组转换为对象Object.fromEntries()
:
const str = `Amy apples
Betty oranges
Cathy watermelon
Daisy bananas
Edward pears
Fiona grapes`
const result = Object.fromEntries(str.trim().split('\n').map(s => s.split(' ')))
console.log(result)
推荐阅读
- ios - 带阴影的圆角边缘
- javascript - jPlayer - 根据文件夹中的文件播放随机音频文件
- python - 在 pandas 中使用 iterrows 的有效方法(另一种方法)
- javascript - 尝试将键:值对添加到 res.locals.object 不起作用(节点/快递)
- r - 在 tmap 中堆叠边框和填充颜色的图例
- laravel - Laravel 队列:作业/任务错误时退出队列
- node.js - Express (NodeJS) - 代理应用程序的身份验证
- angular - 如何正确构建具有多个可以相互访问的模块的角度应用程序?
- java - 如何为特定键处理事件
- python - 通过使用“或”运算符来避免重复代码行不会得到与复制行时相同的结果