将 JSON 格式响应显示到 React-Native
Displaying JSON format response into React-Native
我通过 API 向服务器发送了一个 post 请求,我收到了以下 JSON 格式的响应(console.log 屏幕截图):
执行以下代码后,我能够在警报对话框中显示响应:
uploadPhoto() {
RNFetchBlob.fetch('POST', 'http://192.168.1.102:8000/api/v1/reader/', {
Authorization: 'Bearer access-token',
otherHeader: 'foo',
'Content-Type': 'multipart/form-data',
}, [
{ name: 'image', filename: 'image.png', type: 'image/png', data: this.state.data },
]).then((response) => response.json())
.then((responseJson) => {
this.setState({
jsonData: responseJson
}, () => {
Alert.alert(" Vehicle Number Plate: " + responseJson.processed_text);
console.log(responseJson);
});
})
.catch((error) => {
console.error(error);
});
}
<TouchableOpacity
style={styles.buttonStyle}
onPress={this.uploadPhoto.bind(this)}>
<Text style={styles.btnTextStyle}> Process Image</Text>
</TouchableOpacity>
但是,由于我是 React-Native 开发的新手,所以除了在警告对话框中,我无法在应用程序中显示 JSON 数据。以下是我的代码:
正在通过构造函数初始化jsonData对象的状态:
constructor() {
super();
this.state = {
imageSource: null,
data: null,
jsonData: []
};
}
然后,设置jsonData对象的状态(详细:上面的代码片段):
.then((response) => response.json())
.then((responseJson) => {
this.setState({
jsonData: responseJson
}
最后,我使用组件 FlatList 来显示数据:
<View>
<Text>Display Response JSON Data</Text>
<FlatList
data={this.state.jsonData}
renderItem={({ item }) => <Text> {item.processed_text } </Text>}
/>
</View>
但是,我看不到输出!我该如何解决这个问题?
Flatlist 适用于数组。您的响应应该是这样的数组:
[
{ processed_text: 'value1', owner: { fullname: 'alex' } },
{ processed_text: 'value2', owner: { fullname: 'john' } },
]
如需更多见解,请查看 Flatlist
我通过 API 向服务器发送了一个 post 请求,我收到了以下 JSON 格式的响应(console.log 屏幕截图):
执行以下代码后,我能够在警报对话框中显示响应:
uploadPhoto() {
RNFetchBlob.fetch('POST', 'http://192.168.1.102:8000/api/v1/reader/', {
Authorization: 'Bearer access-token',
otherHeader: 'foo',
'Content-Type': 'multipart/form-data',
}, [
{ name: 'image', filename: 'image.png', type: 'image/png', data: this.state.data },
]).then((response) => response.json())
.then((responseJson) => {
this.setState({
jsonData: responseJson
}, () => {
Alert.alert(" Vehicle Number Plate: " + responseJson.processed_text);
console.log(responseJson);
});
})
.catch((error) => {
console.error(error);
});
}
<TouchableOpacity
style={styles.buttonStyle}
onPress={this.uploadPhoto.bind(this)}>
<Text style={styles.btnTextStyle}> Process Image</Text>
</TouchableOpacity>
但是,由于我是 React-Native 开发的新手,所以除了在警告对话框中,我无法在应用程序中显示 JSON 数据。以下是我的代码:
正在通过构造函数初始化jsonData对象的状态:
constructor() {
super();
this.state = {
imageSource: null,
data: null,
jsonData: []
};
}
然后,设置jsonData对象的状态(详细:上面的代码片段):
.then((response) => response.json())
.then((responseJson) => {
this.setState({
jsonData: responseJson
}
最后,我使用组件 FlatList 来显示数据:
<View>
<Text>Display Response JSON Data</Text>
<FlatList
data={this.state.jsonData}
renderItem={({ item }) => <Text> {item.processed_text } </Text>}
/>
</View>
但是,我看不到输出!我该如何解决这个问题?
Flatlist 适用于数组。您的响应应该是这样的数组:
[
{ processed_text: 'value1', owner: { fullname: 'alex' } },
{ processed_text: 'value2', owner: { fullname: 'john' } },
]
如需更多见解,请查看 Flatlist