如何在ReactNative中解析JSON数据?

时间:2019-04-11 08:41:16

标签: react-native

我有获取API,该API具有JSON数据并获取Json响应,但是在JSON数据格式中有两个数组,在不响应之后我只有一个数组响应,那么如何获得整个数组/ JSON数据响应?

在下面的代码中,我应该在这里写些什么来获取“标题”的值?

componentDidMount() {
return fetch(
  'https://library.booksmeridian.com/cgi-bin/koha/app-scripts/koha-issued_items.pl?borrowernumber=3918')
  .then(response => response.json())
  .then(responseJson => {
    this.setState({
        loading: false,
        dataSource: responseJson.Data},
    );
    console.log(responseJson);
  })}
render() {return (
  <View style={styles.MainContainer}>
  <FlatList
    data={this.state.dataSource}
    renderItem = {({ item}) => (
    <View> <Text>{item.isIssue}</Text></View>
    )}
    keyExtractor={(item, index) => index}
    />
  </View>
):}}}

我想要这样的输出:

isIssue:True,
DueDate: 13 Mar 2019,
Biblionumber: 61482,
Title: Ramayana Part 12 Lava Kusha Episode Part II,
IssueDate: 13 Mar 2019,
ISBN: 9781730107733,
Barcode: B0157817

2 个答案:

答案 0 :(得分:0)

更改此:

this.setState({
  loading: false,
   dataSource: responseJson.Data
});

对此:

this.setState({
  loading: false,
   dataSource: responseJson
});

console.log('RESPONSE_JSON', responseJson)

检查控制台是否获得所需的所有响应。那么您可以遍历它。

答案 1 :(得分:0)

如果您的JSON看起来像这样,则您的代码为真

{
  Data:{
     isIssue:True,
     DueDate: 13 Mar 2019,
     Biblionumber: 61482,
     Title: Ramayana Part 12 Lava Kusha Episode Part II,
     IssueDate: 13 Mar 2019,
     ISBN: 9781730107733,
     Barcode: B0157817
    }
}

因为你这样说:

 dataSource: responseJson.Data

如果您没有Data且只有json这样的话:

{
isIssue:True,
DueDate: 13 Mar 2019,
Biblionumber: 61482,
Title: Ramayana Part 12 Lava Kusha Episode Part II,
IssueDate: 13 Mar 2019,
ISBN: 9781730107733,
Barcode: B0157817
}

Data之后不需要dataSource: responseJson

最后,您可以像这样使用dataSource

<Text>    {this.state.dataSource.Title}    </Text>
<Text>    {this.state.dataSource.DueDate}  </Text>