如何使用我的 MYSQL 数据库中的数据填充 JSON 数组?

Posted

技术标签:

【中文标题】如何使用我的 MYSQL 数据库中的数据填充 JSON 数组?【英文标题】:How do I populate a JSON array with the data from my MYSQL database? 【发布时间】:2021-03-12 02:23:54 【问题描述】:

所以我有一个可以使用 ExpressJS 和 NodeJS 查询的数据库。数据库是一个 mysql 数据库。里面的数据是这样的:

id: 1
username: 'someUsername'
email: 'randomEmail@email.email'

我想以某种方式将数据库中的数据放入 JSON 列表中,然后对其进行映射并将其显示给用户。我推断,实现此目的的另一个选择是填充应用程序的状态。我想创建一些类组件,添加一个 mapStateToProps 并将查询返回的数据分配给状态,然后在 Reactapp 本身中使用来自状态的数据。我不确定这是否有效。

【问题讨论】:

【参考方案1】:

嗯,您从 SQL 查询中获得的返回数据本身就是一个对象数组, 您的答案在于简单地迭代返回的数据并将其分配给您喜欢的任何对象。

let queryResults = returnedQueryData // data returned from SQL query
let jsonarray = 

for (row in queryResults) 
  jsonarray[row.id] = 
    id: row['id'],
    username: row['username'],
    email: row['email']
  

要访问 JSON 数组中的数据,请使用

Object.keys(jsonarray).forEach(e => 
    // Here e is the object element from the JSON array

【讨论】:

是不是每次循环都会覆盖jsonarray?【参考方案2】:

这是从后端 onLoad 获取数据并使用 .map 显示数据而不使用 redux (mapstatetoprops) 的组件的最小代码示例

const DisplayData = () => 

     const [ data, setData ] = useState([]);

     
     const fetchData = async () => 
         const results = await fetch(url).then(res => res.json());
         setData(data)
     

     useEffect(() => 
         fetchData()
     ,[])
 return ( <div>
            data.map(item => <p>item.name</p> 
           <pre>
              JSON.stringify(null, data, 4) 
          </pre>
         </div>

【讨论】:

以上是关于如何使用我的 MYSQL 数据库中的数据填充 JSON 数组?的主要内容,如果未能解决你的问题,请参考以下文章

(Vue.js)如何使用数据中数值数组中的选项标记填充选择标记?

如何在 ubuntu 中使用 xampp 填充 mysql 数据库中的区域表

从 MySQL 数据库填充文本框/下拉列表

如何使用填充旧表中的行的动态数据动态更新新MySQL表中的行?

使用 mysql 数据库中的信息填充 HTML 单选按钮

使用 Google Charts 填充 MySQL 数据