开发者问题收集

从服务器接收 JSON 数据,但无法在 React 中解析数据

2017-01-27
334

我从服务器接收数据但无法解析它。解析时出现错误 “JSON 中位置 0 处出现意外标记 u JSON.parse ()”。

import React from 'react';
import axios from 'axios';



class Premontessori extends React.Component{
  constructor(props){
    super(props);
    this.state={
      post:[]
    };

  }


componentDidMount(){
  axios.get('http://localhost:8080/list')
  .then(data =>  this.setState({post:data} )

);

    }


  render(){
    return(
    <div>
    {JSON.parse(this.state.post.data)}


</div>

    );
  }
}
export default Premontessori;
1个回答

这个:

axios.get('http://localhost:8080/list')
.then(data =>  this.setState({post:data} )

... 会将您的状态设置为 {post: ...},其中 ...data 的值,它可能是字符串或已解析的对象树,具体取决于 axios.get 在收到 JSON 时是否自动解析它。

如果它是一个字符串,则需要使用 JSON.parse 对其进行解析。然后直接使用它:

.then(data =>  this.setState(JSON.parse(data) )

...或者,如果它确实是 post 的值,则:

.then(data =>  this.setState({post: JSON.parse(data)} )

如果它 已经 解析过,那么我猜它不应该是 post 的值,因此:

.then(data =>  this.setState(data))
T.J. Crowder
2017-01-27