Как вывести на страницу только одно значение из результата post запроса

215
07 мая 2018, 23:33

В ответе из ajax запроса получаю такой резултат [{"msisdn":"999999999","debug_opt":false,"service":"prepaid"}] Как вывести только одно значение например "service": "prepaid" в читабельном виде. Сам скрипт:

<script type="text/javascript">
      $('#enter').click(function(){
        var input = document.getElementById('numid');
        $.ajax({
        type: 'POST',
            url: 'http://177.77.44.999:8081/spgw/v1',
            xhrFields: {
        withCredentials: false
      },
        crossDomain: true,
        data: JSON.stringify({
          "method": "subscriberInfo",
          "params":[{"msisdn": input.value}],
          "id":"1"
        }),
             success: function(msg){
                                var data = JSON.stringify(msg.result);
                                    $('#RoumInfo').html('<ul>Сведения по 
                  абоненту: ' + data + '</ul>');
          },
        error: function (responseData, textStatus, errorThrown) {
            console.log('POST failed.' + JSON.stringify(responseData));
          },
          dataType: 'json',
          contentType: "application/json; charset=utf-8"
          });
        });
        </script>
Answer 1

Поскольку в ответе от сервера у вас массив с объектом, то надо делать так.

success: function(msg){
     var resp = msg.result[0] // Получаем первый элмент массива.
     if(resp) // Здесь проверяем, есть ли первый элемент
       $('#RoumInfo').html('<ul>Сведения по абоненту: ' + resp.service + '</ul>'); // Здесь берем свойство service
     else
       $('#RoumInfo').html('<ul>Сведения по абоненту: Не найдены</ul>'); // Если сервер не нашел значений
},
Answer 2

попробуй:

success: function(msg) {                                   
    $('#RoumInfo').html('<ul>Сведения по 
        абоненту: ' + msg['service'] + '</ul>');
     },

или

msg.service
Answer 3

Не нужно делать JSON.stringfy() сделай например так:

success: function(msg){
    const resService = msg.result.service; // выводиться ниже.
    const resMsi = msg.result.msisdn; // куда то ещё можно вставить ниже.
    const resDebugOpt = msg.result.debug_opt; // куда то ещё можно вставить ниже.
    $('#RoumInfo').html('<ul>Сведения по абоненту: ' + resService + '</ul>');
},
Answer 4
$('#enter').click(function() {
  var input = document.getElementById('numid');
  $.ajax({
    type: 'POST',
    url: 'http://177.77.44.999:8081/spgw/v1',
    xhrFields: {
      withCredentials: false
    },
    crossDomain: true,
    data: JSON.stringify({
      "method": "subscriberInfo",
      "params": [{
        "msisdn": input.value
      }],
      "id": "1"
    }),
    success: function(msg) {
      try {
        var msgJson = JSON.parse(msg);
      } catch (e) {
              alert('Error.Please refresh the page!');
      }
      $('#RoumInfo').html('<ul>Сведения по  абоненту: ' + msgJson.service + '</ul>');
    },
    error: function(responseData, textStatus, errorThrown) {
      console.log('POST failed.' + JSON.stringify(responseData));
    },
    dataType: 'json',
    contentType: "application/json; charset=utf-8"
  });
});
READ ALSO
Синхронизация MongoDB и Firebase

Синхронизация MongoDB и Firebase

Есть два приложенияУ обоих сервер на Node

157
Caesars Cipher не работает

Caesars Cipher не работает

Не могу найти ошибкуСо знаками, не являющимися буквами, еще не разбирался

207
Раскрытие при клике

Раскрытие при клике

В общем, сейчас работает так, но если на странице будет несколько (content) как быть? Получается сейчас так, что отображает один (

135
Какие вопросы задают Junior Font-end? [требует правки]

Какие вопросы задают Junior Font-end? [требует правки]

подскажите какие могут задавать вопросы Junior Front-end(у) на собеседовании ?

145