这两天在做中英文双版的文件,页面根据语言读取不同的内容。js模板用的是ejs

json文件:
"components":{
"pages":{
"home":{
"meta":{
"title":"首页",
"keywords":"关键字",
"desc":"描述"
},
"title":"登录失败",
"button":"重新登录"
}
}
}

页面js代码

let metaTitle = "<%= components.pages.home.meta.title %>"
console.log(metaTitle)
//控制台输出:首页

但是当json文件中数据很多,而又都需要的情况下,显然不能一条一条赋值,最好是可以将整个对象进行赋值,比如:

let home ="<%= components.pages.home %>"
console.log(home)
//控制台输出:[object Object]

这种情况下,控制台输出的是[object Object],看不到具体的内容,于是需要将它转换成与json文件中格式一致,方便在js中使用

  • JSONObject.fromObject()
let home = "<%= components.pages.home %>"
let homeObj = JSONObject.fromObject(home);
console.log(homeObj)
//ReferenceError: JSONObject is not defined[详细了解]
  • JSON.stringify()
let home = "<%= components.pages.home %>"
let homeObj = JSON.stringify(home);
console.log(homeObj)
//"[object Object]"
  • JSON.parse()
let home = "<%= components.pages.home %>"
let homeObj = JSON.parse(home);
console.log(homeObj)
//SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data[详细了解]
  • ps:let home = "<%= components.pages.home %>" 这里的双引号在解析的时候,会和内部的双引号行程匹配,所以下一种办法中,将""改成了''
  • 最后提供一种目前自己代码使用的办法
let home = JSON.parse(decodeURI('<%- encodeURI(JSON.stringify(components.pages.home)) %>'))

后来发现并不需要decode和encode

let home = JSON.parse('<%- JSON.stringify(components.pages.home) %>')
      </div>

最新文章

  1. 吸顶大法 -- UWP中的工具栏吸顶的实现方式之一
  2. Web Service简要概念,学习记录!
  3. Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析
  4. Solr部分更新MultiValued的Date日期字段时报错及解决方案
  5. 用Laravel+Grunt+Bower管理你的应用
  6. 【java】分页查询实体类
  7. ant 自定义taskdef的工作目录
  8. javascript: Jquery each loop with json array or object
  9. Xcode 5.0.2 下载地址
  10. 静态页分页功能js代码
  11. Session的工作机制详解和安全性问题(PHP实例讲解)
  12. Mysql 创建数据库表(删除,删除,插入)
  13. Starter Set of Functional Interfaces
  14. Android开发之onClick事件的实现
  15. STM32自带的bool型变量
  16. JSU省赛队员选拔赛个人赛1(Coin Change、Fibbonacci Number、Max Num、单词数、无限的路、叠筐)
  17. 数据结构录 之 BST的高级应用。
  18. sqlserver的四种分页方式
  19. bugku 逆向 take the maze
  20. CentOS7服务管理

热门文章

  1. 【先定一个小目标】dotnet core 命令详解
  2. APP多渠道打包
  3. IO流的原理和概念
  4. POI导出时,将指定的列设置为下拉列表
  5. Android学习笔记(十二) 线程
  6. 本地连接批处理修改IP
  7. iisexpress局域网内调试网站
  8. 使用Win7 64位旗舰版光盘映像安装Windows Home basic 64位操作系统
  9. ALTER GROUP - 修改一个用户组
  10. ALTER FUNCTION - 修改一个函数的定义