首页 > 解决方案 > 如何在电子中显示来自json的单个值

问题描述

我有一个 Electron 应用程序,我正在执行本地脚本并返回 json 输出。我可以显示所有 json 但无法显示单个值。

HTML 中的脚本

<script type="text/javascript">
const { exec } = require("child_process");

const test = exec("cd /home/user/Desktop/Wallet && ./wallet --format json balance", (error, stdout, stderr) => {

    if (error) {
        console.log(`error: ${error.message}`);
        return;
    }
    if (stderr) {
        console.log(`stderr: ${stderr}`);
        return;
    }
   const test = (`data: ${stdout}`);

   console.log(test);

});
</script>

在控制台日志中,我正在打印

data: [
  {
    "address": "134JGdUZauF3c8zxF9yzipGdojv6XGSmW5exCDiQM1wWJfGXXXY",
    "balance": 0.1,
    "dc_balance": 0,
    "sec_balance": 0.0
  }
]

但我无法打印balanceaddress仅打印,无论我做什么总是undefined.

标签: javascriptnode.jselectron

解决方案


stdoutarg 包含子进程生成的输出(json string)。它只是一个字符串。您需要解析该 json 输出以获取数据:

try
{
  const data = JSON.parse( stdout )
  console.log( `Adress:${data[ 0 ].address}` )
}
catch( err )
{
  throw Error( "Failed to parse json output.Reason:\n" + err )
}

推荐阅读