javascript - 无法从包含的数据中选择特定元素
问题描述
我对 JSON 格式有疑问。我是这种东西的新手,所以我不知道哪个是问题所在。在谷歌应用程序脚本中,我有这个 get 功能
function doGet() {
var htmlTemplate = HtmlService.createTemplateFromFile('html');
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1_cj_HO2oN6CYe_Pb7Cy8S3yVtwKW8Efr-Sdyf1Sk8Ts/edit#gid=2009573145");
htmlTemplate.dataFromServerTemplate = makeJSON(getRowsData_(ss.getSheetByName("Foglio8"),getExportOptions()),getExportOptions());
var htmlOutput = htmlTemplate.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle('sample');
return htmlOutput;
}
现在,这是不工作的 HTML 部分
<div>
<p id="tx"></p>
</div>
<script type="text/javascript">
var data = <?!=JSON.stringify(dataFromServerTemplate) ?>;
function caric(){
document.getElementById("tx").innerText= data.saldo;}
</script>
</body>
页面的功能caric()
运行onload
。“saldo”实际上包含在这个 JSON 中。
如果我使用data.saldo
我收到undefined
但如果我只使用data
它可以工作并打印 JSON 中包含的所有内容。
你知道我做错了什么吗?谢谢
解决方案
JSON.stringify 产生一个字符串而不是一个对象。在您的服务器代码中,您应该执行类似的操作。
var obj = { name: "me", gender: "male", eyes: "blue" };
htmlTemplate.dataFromServerTemplate = JSON.stringify(obj);
而在客户端这个
var data = JSON.parse(<?= dataFromServerTemplate ?>);
(function caric(){
document.getElementById("tx").innerText= data.name;}());
推荐阅读
- r - 有没有办法在 R 中绘制一组像箭头一样的向量?
- php - 动态改变html表单动作?(节流策略)
- c++ - 在哪些情况下,来自 std::forward 的赋值优于来自 std::move 的赋值?为什么?
- big-o - 当 j=i 时对嵌套循环 Big-O 运行时感到困惑
- python - 使用上一页的参数初始化 Django 表单
- css - 背景颜色引导程序不会占用整页的宽度
- git - 使用 git rebase 忽略顽皮文件
- android - 谷歌地图 API 密钥 - Android
- javascript - 将记录添加到不同的选项卡
- php - 在 Codeigniter 中将数组从控制器发送到模型的问题