javascript - 如何使用 javascript 获取 json 中 "__type"键的值

标签 javascript json

解决方案:

我发现了问题,那就是stylus解析器将函数重写为JSON,所以虽然ast打印如下,但实际上ast对象没有__type属性,所以它导致了问题。

<小时/>

问题:

我正在使用 stylus ast 树,如下所示:

{
"__type": "Root",
"nodes": [
  {
    "__type": "Ident",
    "name": "some-mixin",
    "val": {
      "__type": "Function",
      "name": "some-mixin",
      "lineno": 1,
      "column": 16,
      "params": {
        "__type": "Params",
        "nodes": [
          {
            "__type": "Ident",
            "name": "a",
            "val": {
              "__type": "Null"
            },
            "mixin": false,
            "lineno": 1,
            "column": 12
          },
          ...

这是一棵用json表示的树。

我想获取“__type”的值,但是使用[“__type”]获取值,返回undefined。

似乎“__type”在json中有一些特殊的含义,我如何获取“__type”的值?

PS: 我试过object.__type来获取值,这是行不通的。

此外,我还发现了一些奇怪的事情

typeof ast // returns object

我使用 JSON.stringify(ast),并且 __type 在字符串中 但我使用console.log(ast),缺少__type,我不知道为什么..

我也尝试过

console.log(ast.hasOwnProperty('__type')) //return false

PPS:我在节点 v0.12.0 中运行此代码

感谢您的帮助!

最佳答案

JavaScript 不会以任何方式专门识别“__type”。验证 AST 是否已解析为对象。如果它仍然是 JSON 字符串,您将得到 undefined。您可以通过在 AST 上使用 typeof 运算符来绝对确定。它应该返回“对象”而不是“字符串”。如果它是“字符串”,那么您必须使用 JSON.parse

关于javascript - 如何使用 javascript 获取 json 中 "__type"键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37152843/

相关文章:

javascript - JSON jQuery 数据变量

javascript - 我如何遍历 react.js 中的对象数组并在对象中添加价格值,如下所示

javascript - 如何在 Mongoose 中找到与数组字段的最后一个元素与给定查询值匹配的所有文档?

python - Django加载本地json文件

java - Jackson ObjectMapper 给出了递归数据类型的错误

JSON 解包未运行

javascript - 将小时转换为日期时间而不添加 +1

javascript - 简单模态不会显示

javascript - 如何减少和增加滚动边距

json - Jmeter Json 提取多个值