我是本机应用程序开发的新手。我对JSON.stringify方法有些困惑。这是我的代码。
fetch('http://link.com', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'multipart/form-data',
},
body: formData
}).then((response) => response.json())
.then((responseJson) => {
this.setState({
loading_status: false
})
if (!responseJson.error) {
var id = responseJson.result.id
var roles_id = responseJson.result.roles_id
AsyncStorage.multiSet([
['user_id', id.toString()],
['roles_id', roles_id.toString()],
]);
} else {
//error
}
}).catch((error) => {
console.error(error);
Platform.OS === 'android' ? ToastAndroid.show("Connection Error !", ToastAndroid.SHORT) : Alert.alert("Connection Error !")
return;
});
但是当我开始为此构建时会出现主要问题。我看到的是不在字符串中的值在从异步存储中写入或读取数据时会产生错误。
它给我的错误在ios建立类似的东西。
NSnull cannot be converted into NSString
所以我将代码更改为这样的
if (!responseJson.error) {
var id = JSON.stringify(responseJson.result.id)
var roles_id = JSON.stringify(responseJson.result.roles_id)
AsyncStorage.multiSet([
['user_id', id],
['roles_id', roles_id],
]);
}
现在这在ios build中可以正常工作。所以我的疑问是我如何解析json或有任何标准方法来解析react native中的json,这样我就不会遇到使ios build for react遇到的问题了。
答案 0 :(得分:0)
JSON.stringify()用于将JSON转换为字符串。要解析字符串数据,使用JSON.parse()。
答案 1 :(得分:0)
在您的示例中,尚不清楚null的来源,但是您可以看看向replacer
调用中添加了JSON.stringify
函数。有关详情,请参见this link。像这样:
function replacer(key, value) {
if (value === null) {
return undefined;
}
return value;
}
...
let result = JSON.stringify(responseJSON.result, replacer);
这使您可以根据需要修改字符串化结果。