从asyncStorage获取时的JSON.parse(object)引发错误:位置1的JSON中的意外令牌o

时间:2019-08-31 11:29:39

标签: javascript react-native asyncstorage

我需要使用asyncStorage使用React Native Android从本地存储中检索对象。我正在使用此方法设置对象:

export const writeParsedContactsToStorage = async (parsedContacts) => {
  try {
    await AsyncStorage.setItem('@parsed_contacts', JSON.stringyfy(parsedContacts))
  } catch (error) {
    console.log(error);
  }
}

然后尝试使用以下方法找回它:

export const getParsedContactsFromStorage = async () => {
  try {
    const parsedContacts = await AsyncStorage.getItem('@parsed_contacts');
    console.log(JSON.parse(parsedContacts));
    return parsedContacts;
  } catch (error) {
    console.log(error);
  }
}

但是,当我仅使用JSON.parse()方法时,就会收到错误消息:

Unexpected token o in JSON at position 1

在没有JSON.parse()的情况下,返回的对象如下所示:

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]...........

如何以原始格式从存储中取出对象?

谢谢

1 个答案:

答案 0 :(得分:0)

我不知道“ parsedContacts”数据是什么。但是,如果您得到的是,请分割数据并剪切。

export const getParsedContactsFromStorage = async () => {
  try {
    const parsedContacts = await AsyncStorage.getItem('@parsed_contacts');
    const splitdata = parsedContacts.split(',');
    splitdata.map( (data, index) => console.log(JSON.stringyfy(data)) );
  } catch (error) {
    console.log(error);
  }
}