javascript - reactjs中如何将值对象转换为数组
问题描述
我有以下类型的数据。
{"username":"[\"abc\"]","password":"[\"asd\"]"}
.
我想把它转换成
{"username":"abc","password":"asd"}
.
我正在尝试 JSON.stringify 但它不起作用。
解决方案
注意:这与 react 无关,react 在这里无法帮助您。
我假设您的输入数据是 JSON,并且您想再次创建 JSON。输入数据不是最优的,看起来你以某种方式对 JSON 进行了双重编码。理想情况下,它看起来像这样:
{"username":["abc"],"password":["asd"]}
即这些值是实际的数组,而不是包含更多 JSON 的字符串。
但是,使用您的原始数据,它会是这样的:
- 将 JSON 解析为带有
JSON.parse
. - 将每个属性的值(同样是 JSON)解析为带有
JSON.parse
. - 将结果数组的第一个元素分配回属性。
- 使用 .将对象转换为 JSON
JSON.stringify
。
执行:
// assuming `input` contains the JSON data, i.e. something like
var input = String.raw`{"username":"[\"abc\"]","password":"[\"asd\"]"}`;
var obj = JSON.parse(input);
obj.username = JSON.parse(obj.username)[0];
obj.password = JSON.parse(obj.password)[0];
var output = JSON.stringify(obj);
console.log(output);
如果您设法生成“更好”的输入数据(在这种情况下,为什么不完全按照您的需要生成它呢?)并且没有嵌套 JSON,而是像我在开始时展示的那样正确的数组,那么步骤将是相同,但您不必调用JSON.parse
属性。
推荐阅读
- node.js - Dockerize 角度与基本路径
- r - 使用 data.tables get 构建构面时,让 labeller 表达变量名称
- javascript - 通知模式未在 n.close() 上关闭
- reactjs - 无法使用 Reactjs-Crud-Hooks-Redux-Axios 从数据库中获取所有数据
- facebook - Facebook Marketing API,检索电话号码转换
- python - 在heroku上出现H10错误-使用mongoengine python
- linux - 如何在 linux 中将更新部署到 .NETCore 应用程序
- appimage - 我的 appimage 包包含两个 python 库
- python - 如何在 Keras 中正确加载和使用预训练模型?
- javascript - 在“转到上一页”复选框保持选中状态后,jquery 不会检测到