如何在本机中获取JSON数组的响应?

时间:2017-11-08 11:41:07

标签: json react-native

rq.js

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

这是我的反应原生代码。如果我的JSON响应不是一个数组,它是完美的。如果json是一个数组,我需要在这段代码中做出哪些更改才能完美地工作?显示此错误Unexpected token < in JSON at position 1

data.json

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

这是我的json数组输入。有人请帮助..

3 个答案:

答案 0 :(得分:1)

尝试将数据作为对象而非数组

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

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

答案 1 :(得分:0)

如果您希望它与数组一起使用,只需执行

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

以这种方式调用数组索引的第一个对象,然后调用数组中第一个对象的prop

答案 2 :(得分:0)

我知道为时已晚,但希望对其他人有帮助。如何在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类型,然后将数据设置为数组的状态类型,然后将其映射到您想要的任何地方。