Как получить доступ к отдельным данным в массиве json?

#json #react-native

#json #react-native

Вопрос:

Данные json представлены в приведенном ниже шаблоне. И данные Json поступают из серверной части, проходят через api и сохраняются в переменной состояния.

 this.state = {
jsonData = [
    {
        "address": "xyz",
        "email": "xyz@gmail.com",
        "id": "12334",
        "name": "abc"
    }
]
}
  

как я могу получить доступ к значению адреса из переменной состояния.

Я пытался получить доступ к данным с помощью

 this.state.jsonData.address
  

Как я могу получить доступ к одному значению в этом случае?

Комментарии:

1. лучше задавать простые вопросы… пожалуйста, изучите массив и объекты в javascript. попробуйте эту ссылку: w3schools.com/js/js_arrays.asp

Ответ №1:

Установите свое состояние, как показано ниже:

 this.state = {

   jsonData : [
        {
            "address": "xyz",
            "email": "xyz@gmail.com",
            "id": "12334",
            "name": "abc"
        }
    ]
    }
  

для доступа к значению попробуйте следующее:

 this.state.jsonData[0].address
  

Комментарии:

1. Привет, как я могу обновить состояние отдельного значения в том же массиве, о котором я упоминал выше? @Brijesh Shiroya

Ответ №2:

Сначала поймите, к чему вы пытаетесь получить доступ?

вы пытаетесь получить доступ к массиву prop внутри state, поэтому вы не можете напрямую получить доступ к подобному объекту.

итак, вам нужно указать индекс следующим образом —

 // if you want to access array you need to access via index
this.state.jsonData[index].propname
  

Комментарии:

1. Привет, как я могу обновить состояние отдельного значения в том же массиве, о котором я упоминал выше? @сатиш кумар

2. попробуйте это для обновления -> this.state.jsonDate[index] = YourNewObjToUpdate

Ответ №3:

ваш объект представляет собой массив объектов json, поэтому для доступа к одному из них вы должны указать индекс.

 this.state.jsonData[0].address
  

Ответ №4:

Вы можете удалить массив [ ] из json, а также заменить = на : следующим образом:

 constructor(props) {
    super(props);
    this.state = {
    jsonData : 
      {
        "address": "xyz",
        "email": "xyz@gmail.com",
        "id": "12334",
        "name": "abc"
      }      
    }
}
  

и тогда вы можете ссылаться на это как this.state.jsonData.address