Converting array to json in react application

10,090

JSON.stringify(..) will convert your array the right way. The serialized object would be something like:

{
  "items": [
    {
      "key1": "value1",
      "key2": "value2"
    },
    {
      "key1": "value1",
      "key2": "value2"
    }
  ]
}

But like you wrote in your first sentence, you are setting the items array to state. In think in a way like this: this.setState({ items }) If so, you have to get the array right from your state in your component:

storeDataInDatabase() {
  const { items } = this.state;
  const myObjStr = JSON.stringify(items);
  console.log(myObjStr);
}
Share:
10,090

Related videos on Youtube

Baba
Author by

Baba

Updated on June 04, 2022

Comments

  • Baba
    Baba almost 2 years

    In my react code I have items as an array in my state.

    items[]
    

    I was able to populate items array with few data and need to pass it to my web service. First I need to convert that array to json. This is just crashing for me when I do the Json.stringify.

    Is there a different way to do it in react application?

    storeDataInDatabase(){
    
        const myObjStr = JSON.stringify(this.props.items);
    
        console.log(myObjStr);
    }
    
    • chazsolo
      chazsolo about 5 years
      You said state initially then use props in your example. Which is it? What is the error? "just crashing for me" doesn't tell us much.
    • jmargolisvt
      jmargolisvt about 5 years
      What is items[]? It looks like you forgot a string in a property accessor, but you're saying it's an array.
    • dnp1204
      dnp1204 about 5 years
      If your items = [1, 2, 3], it will becomes '[1, 2, 3]' when you do JSON.stringify(items). I don't think you can convert array to json since json is a format. It is not a data structure. I think you mean converting array to object right?
    • Baba
      Baba about 5 years
      Yes I think it is converting array to object
  • Baba
    Baba about 5 years
    This looks more like what am looking for. I will try it now