我正在创建一个简单的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')
);
答案 0 :(得分:3)
我猜这是因为密钥没有引用,因为第一个密钥以i
开头。
一些(大多数?)JSON解析器不支持不带引号的密钥,因为规范(RFC,ECMA)要求密钥是带引号的字符串。
支持不带引号的密钥的解析器主要是为了方便起见,尽管在互操作性方面不太理想。强烈建议不要依赖于此并始终生成带引号键的JSON文档。
[
{
"id": 0,
"name": "Superman",
"strength": 10,
"intelligence": 7,
"speed": 9
},
...
]
答案 1 :(得分:1)
必须引用您的JSON对象的键。尝试验证它here