Почему ответ JSON доступен по-разному в ответе Javascript

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть следующая функция, которая выполняет поиск данных в Soap API

 $response = $client->getFunctionByIDNumber($args);

        $ndata = $response->return;

        
            if($ndata->errorResponse->errorCode == 64)
            {
                $error = $ndata->errorResponse->errorDescription;
                return $this->fail($error);
            }
            if($ndata->errorResponse->errorCode == 550)
            {
                $error = $ndata->errorResponse->errorDescription;
                return $this->fail($error);
            }
            else{
                $deedsusagemodel->insert($usageData);
                
                return $this->respond($ndata, 200);

            }
  

Все до этого момента работает отлично.

если я ищу пользователя с несколькими машинами, ответ будет в следующем формате. Доступен следующим образом response.personInformation.name

 {personInformation:{ "name":"John", "age":30, "car":[ "Ford", "BMW", "Fiat" ]}} 
  

Если у пользователя только один car

 {personInformation:{ "name":"John", "age":30, "car":[ "Ford"]}} 
  

Объект доступен с помощью response[0].personInformation.name

Просто хочу знать, почему я получаю такое поведение. Я хочу использовать javascript и jquery для обработки информации, но поскольку ответ отличается, это усложняет задачу. Любые предложения помогут. Заранее спасибо

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

1. Структура ответа абсолютно одинакова в обоих примерах, и к ней можно получить доступ абсолютно одинаковым способом. С какой проблемой вы сталкиваетесь с этой структурой?

2. Когда я ищу пользователя с 1 автомобилем, я могу получить к нему доступ, используя response[0].personInformation. имя, но если у пользователя более двух машин, ответ доступен через response.personInformation.name

3. Вы не реализовали это поведение в своих примерах. Пожалуйста, обновите примеры. Как вы можете видеть, response[0] выдает ошибку.

4. Как я предполагаю это реализовать, потому что я получаю другой ответ. Я ожидаю, что ответом будет response.ErrorResponse.ErrorCode, но теперь я должен учитывать оба ответа [0].ErrorResponse.ErrorCode Если возвращается пользователь с несколькими автомобилями, я хочу перебирать автомобили. Итак, я не уверен, что вы имеете в виду, говоря, что я не реализовал поведение. Поэтому любые рекомендации будут оценены

5. Если вы получаете другой ответ, вы не показываете это в сообщении. Пожалуйста, покажите реальные разные ответы в сообщении, в настоящее время структуры данных одинаковы. Обратите внимание, что если вы получаете разные ответы, то проблема заключается в коде на стороне сервера, и вопрос не имеет ничего общего с JS.