【问题标题】:How to fetch the response of JSON array in react native?如何在本机反应中获取 JSON 数组的响应?
【发布时间】:2017-11-08 11:41:06
【问题描述】:

rq.js

}).then((responseData) =>{
        this.setState({
            user:responseData.name,
            user1:responseData.blood,
            user2:responseData.location,
            loaded: true,
        })

这是我在 react native 中的代码。如果我的 JSON 响应不是数组,它可以完美运行。如果 json 是数组,我需要在此代码中进行哪些更改才能完美运行?显示此错误 Unexpected token < in JSON at position 1

data.json

[{"name":"hema","bld":"O -ve","lc":"london"}]

这是我的 json 数组输入。请大家帮忙..

【问题讨论】:

    标签: json react-native


    【解决方案1】:

    尝试将数据作为对象而不是数组发送

    {"name":"hema","bld":"O -ve","lc":"london"}
    

    实际上您正在调用道具 bloodlocation,但您的 JSON 内容 bldlc 用于该道具

    【讨论】:

      【解决方案2】:

      如果您希望它与数组一起使用,只需这样做

      }).then((responseData) =>{
          this.setState({
              user:responseData[0].name,
              user1:responseData[0].blood,
              user2:responseData[0].location,
              loaded: true,
          })
      

      这样你调用数组索引的第一个对象,然后调用数组中第一个对象的prop

      【讨论】:

      • 试过这个但得到了和以前一样的错误Unexpected token < in JSON at position 1
      • 您是否在浏览器中收到该错误?您可以发送整个 JSON 响应吗?您是否在任何时候使用JSON.parse?可能是来自服务器的错误,您必须检查您实际上是从服务器发送dataType: 'json'
      • 是的,我收到了json response。回复是这样的[{"name":"maria","bld":"B -ve","lc":"kochi"},{"name":"linu","bld":"AB +ve","lc":"kollam"},{"name":"minnu","bld":"AB +ve","lc":"kollam"}]
      • @anu 你对此有什么解决方案吗?
      【解决方案3】:

      我知道为时已晚,但我希望它对其他人有所帮助。 react native如何获取JSON数组的响应?

      export default class ExpenseNew extends Component {
          constructor(){
              super();
              this.state={
                  accountnameMain:[],
              }
          }
           componentDidMount(){
               var account_nam=[]
                      fetch('your Url', {
                          method: 'GET',
                          headers: { 'Authorization': 'Bearer ' + your token }
                      })
                          .then((response) => response.json())
                          .then((customerselect) => {
                              // alert(JSON.stringify(customerselect)) 
                              global.customerdata = JSON.stringify(customerselect)
                              var customername = JSON.parse(customerdata);
                              //alert(JSON.stringify(customername));
                              for (i = 0; i < customername.cus_data.length; i++) {
                                  var dataa = customername.cus_data[i]["account_name"];  
                                  account_nam.push(dataa)
                              }
                              this.setState({accountnameMain:account_nam});
                          })
                          .done();
          }
      

      account_name 是我的字段/列名,在您的情况下,您的列名是bld,因此您可以获取所有数据并推入 var 类型的数组,然后将数据设置为数组的状态类型,并映射到任何地方你想要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-24
        • 1970-01-01
        • 1970-01-01
        • 2018-06-03
        • 2018-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多