2017-04-08 105 views
1

我有以下的存储为JavaScript变量的Javascript数据结构:错误评估使用JSON.parse

"{'Headings': 
    [{'name': 'Behavior', 'majorTopic': 'N', 'vote': {'down': 1, 'up': 1}}, 
    {'name': 'Brain Mapping', 'majorTopic': 'N'}, 
    {'name': 'Evoked Potentials', 'majorTopic': 'N'} 
]}" 

,使得变量的类型是一个字符串。 我试图评价字符串用来得到一个字典这样的:

{"headings":[{"name":behavior,'majorTopic':"N", 'vote':{'down':1,'up':1}}]} 

但是,当我试图使用eval(变量)或JSON.parse(变量),我得到的错误:

Uncaught SyntaxError: Unexpected token : 
    at eval For eval 

VM529:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 1 
    at JSON.parse (<anonymous>)` For the JSON.parse function. 

我相信错误涉及到投票字典,upvotes和downvotes, 但嵌套当我评价一个嵌套的声明像这样独立,我没有得到任何问题。

如何在评估此声明时保留嵌套投票选项卡?

+1

您的JSON没有从http://jsonlint.com/通过验证测试 – jrook

回答

1

你必须在你的JSON字符串中使用双引号。除此之外,它是好的,应该解析没有问题。

0

尝试创建一个有效的JSON:

{ 
"Headings": [{ 
    "name": "Behavior", 
    "majorTopic": "N", 
    "vote": { 
     "down": 1, 
     "up": 1 
    } 
}, { 
    "name": "Brain Mapping", 
    "majorTopic": "N" 
}, { 
    "name": "Evoked Potentials", 
    "majorTopic": "N" 
}] 
}