mysql - 我如何显示 json 对象 {"id":"value"} 而不是 {"col1":"id","col2:"值"}

标签 mysql json

所以我正在使用 languages.js.org 制作多语言网站, 数据库名为 ft_mainft_lang 翻译包含 2 列:id, en.

使用 JSON,我可以像这样从我的数据库中显示 JSON 对象:

{"id":"1","en":"First translation"},
{"id":"2","en":"Second translation"},
{"id":"3","en":"Third translation"},
...

但是 languages.js 不会以上面的对象格式运行,它将以这样的格式运行:

{"1":"First translation"},
{"2":"Second translation"},
{"3":"Third translation"},
...

那么我如何使用 JSON 从我的数据库中以我上面提到的格式显示对象呢?

最佳答案

可以使用map来简化代码:

var data = [
  {"id":"1","en":"First translation"},
  {"id":"2","en":"Second translation"},
  {"id":"3","en":"Third translation"}];
var newData = data.map(obj => ({[obj.id]: obj.en}));
console.log(newData);

解释:

  • data.map(fn) 将函数 fn 应用于 data 数组中的每个元素,并在数组中返回结果大小相同。
  • obj => ({[obj.id]: obj.en}) 是一种接受 obj 并返回包含单个属性的对象的翻译,其中obj.id 作为键,obj.en 作为值。
    • 这就是将 {"id": "foo", "en": "bar"} 变成 {"foo": "bar"} 的原因。
    • 外部 () 是必需的,否则 JavaScript 会尝试将 {} 中的内容视为函数。
    • [] 需要围绕 obj.id 以便解析器知道整个键是 obj.id 而不是 obj

关于mysql - 我如何显示 json 对象 {"id":"value"} 而不是 {"col1":"id","col2:"值"},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51862527/

相关文章:

php - 初学者更新记录 PDO 时遇到问题

PHP 打印 2 个查询集而不想要

MySQL查询以获取每个月数据的平均值数组

json - 如何解析包含键值对的 JSON 对象?

php - 如何访问php类中的资源文件

javascript - 在 JavaScript 中将键数组和值数组合并到一个对象中

php - 即使我使用 html_entity_decode ,html 实体也会传递到数据库中

php - 从同一张表的每个类别中获取 4 个最新行

c# - 如何动态检查数组中的索引是否存在?

javascript - 无法使用 JSON.parse 解析字符串