Parsing JSON object with AsyncStorage

Tags: , ,



I am basically trying to write and read a simple object.

Writing: AsyncStorage.setItem('@Test', JSON.stringify(newStudent)) Reading: console.log(JSON.parse(AsyncStorage.getItem('@Test'))) But im getting “Uncaught SyntaxError: Unexpected token o in JSON at position 1”.

I Also tried console.log(AsyncStorage.getItem('@Test').ID) But im getting “Undefined”.

How can I parse the object?

Answer

There are two ways you can get your information from AsyncStorage

First:

const retriveData = async () => {
    const value = await AsyncStorage.getItem("@Test");
    return JSON.parse(value)
}

Then you can simply call the function and catch the value in a variable

var test = retrieveData();

Second:

If you do not want to use an async function. You can create a hook that stores thaat will store the value of the variable and then update the value like so:

const [testValue, setTestValue] = useState(null);
AsyncStorage.getItem("@Test").then((value) => { setTestValue(value) });

Make sure that you are importing AsyncStorage this way:

import {AsyncStorage} from "react-native";

And not this way:

import AsyncStorage from "react-native";

If you need additional information about AsyncStorage look at the docs here.



Source: stackoverflow