解决方案:怎样才能得到“__type”键的值与一个json的JavaScript
我发现这个问题,那就是手写笔分析器重写功能的toJSON,所以虽然AST打印类似以下,但实际上AST对象没有__type属性,所以会导致问题。
问:
我使用手写笔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'? – madalinivascu
似乎很好:https://jsfiddle.net/sypx3tom/ –
'__type'没有特别的含义或限制。您可以像访问其他任何资源一样访问它。 –