在位置6的JSON中出现意外的令牌 - 反应redux app

时间:2017-06-27 07:06:26

标签: javascript json reactjs

我正在创建一个简单的react redux应用程序 我有json格式的数据,即characters.json

问题是,当我启动应用程序时,我得到了一个 在位置6的JSON中出现意外的令牌

你能告诉我这里有什么不对吗?

[
{
id: 0,
name: "Superman",
strength: 10,
intelligence: 7,
speed: 9
},
{
id: 1,
name: "Batman",
strength: 7,
intelligence: 10,
speed: 6
},
{
id: 2,
name: "Wonderwoman",
strength: 5,
intelligence: 9,
speed: 7
},
{
id: 3,
name: "Flash",
strength: 5,
intelligence: 6,
speed: 10
},
{
id: 4,
name: "Green Lantern",
strength: 7,
intelligence: 8,
speed: 7
},
{
id: 5,
name: "Aquaman",
strength: 8,
intelligence: 7,
speed: 8
},
{
id: 6,
name: "Cyborg",
strength: 9,
intelligence: 8,
speed: 6
},
{
id: 7,
name: "Green Arrow",
strength: 5,
intelligence: 9,
speed: 7
},
{
id: 8,
name: "Hawkman",
strength: 5,
intelligence: 8,
speed: 8
},
{
id: 9,
name: "Supergirl",
strength: 10,
intelligence: 9,
speed: 7
}
]

这是主index.js文件的代码

import React from 'react';
import ReactDOM from 'react-dom';

import App from './components/App';
import {createStore} from 'redux';
import {Provider} from 'react-redux';
import rootReducer from './reducers';

const store = createStore(rootReducer);
console.log('store.getState()',store.getState());

ReactDOM.render(
    <Provider store={store}>
    <App/>
    </Provider>,
    document.getElementById('root')
    );

2 个答案:

答案 0 :(得分:3)

我猜这是因为密钥没有引用,因为第一个密钥以i开头。

一些(大多数?)JSON解析器不支持不带引号的密钥,因为规范(RFC,ECMA)要求密钥是带引号的字符串。

支持不带引号的密钥的解析器主要是为了方便起见,尽管在互操作性方面不太理想。强烈建议不要依赖于此并始终生成带引号键的JSON文档。

[
  {
    "id": 0,
    "name": "Superman",
    "strength": 10,
    "intelligence": 7,
    "speed": 9
  },
  ...
]

答案 1 :(得分:1)

必须引用您的JSON对象的键。尝试验证它here