【问题标题】:Transform a string of an object to an object将对象的字符串转换为对象
【发布时间】:2022-01-20 15:13:27
【问题描述】:

我正在尝试从服务器端获取一个对象并将其带到一个 ejs 文件中以在 javascript 中使用它。

javascript里面的对象是这样的:

   var span = document.createElement("SPAN");
   span.innerHTML = "<%= JSON.stringify(positions) %>";
   var positions = span.innerText;
   span.remove()
   console.log(positions)

它会返回一个类似这样的字符串:

"
    {
        '0': { foo: foo },
        '1': { foo: boo },
        '2': { foo: doo }
    }
    "

我有办法吗?

谢谢!

【问题讨论】:

  • 为什么?我的意思是,您可以解析 JSON,但是该对象已经在 EJS 中作为对象可用——为什么不从一开始就将其呈现为 JS?
  • 有用的问题@DaveNewton。我确实看到 innerHTML 被写入和 innerText 被读取,所以这将剥离标记。首先将 JSON 字符串分配给 HTML 可能是 ziv 的错误。我怀疑这是故意的。例如span.innerHTML=JSON.stringify({msg:"&lt;b&gt;hello&lt;/b&gt;"}) span.innerText --> {"msg":"hello"} 小心!

标签: javascript node.js json object ejs


【解决方案1】:

您可以将一个变量分配给字符串化的位置(没有引号),它就变成了一个 javascript 对象。然后显示它再次将该对象字符串化。

(这“从一开始就将其呈现为 JS”)。

const myJSObj = <%= JSON.stringify(positions) %>;
console.log(JSON.stringify(myJSObj));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 2011-08-02
    • 2016-06-10
    相关资源
    最近更新 更多