Конвертировать JSON-ответ, подходящий для Google Maps Api - PullRequest
0 голосов
/ 04 февраля 2019

Мой сервер отправляет ответ клиенту, массив json

["{"lat":27.4924,"lon":77.6737}", "{"lat":27.4924,"lon":77.6737}"]

Прежде всего, мне нужно заменить атрибут lon на lng (поскольку Google Maps Api не принимает lon в качестве атрибута), а затем мне нужно удалить внешние двойные кавычки для каждого элемента массива.Я немного сбиваю с толку и не знаю, как действовать,

, потому что JSON.parse выдает ошибку (неожиданный токен с JSON.parse).

Я не хочу код, любое предложение будет оценено.Спасибо

Это мой сервер, запрашивающий API

function request (array){
    let risposte = [];
    for (i=0; i<array.length;i++){
      var Http = new XMLHttpRequest();
      var url = "http://ip-api.com/json/" + array[i]+"?fields=lat,lon";
    Http.onreadystatechange = function () {
    if (Http.readyState ==4){
      if(Http.status == 200){
        console.log("qui" + i);
        console.log("Risposta" + Http.responseText);
        risposte.push(Http.responseText);
       }
       if (Http.status==400){
        console.log("servizio momoentanamente non disponibile ");
       }
  }
};
Http.open("GET",url,false);
Http.send();
  }
  console.log("finito");
  return risposte;
}

1 Ответ

0 голосов
/ 04 февраля 2019

Я бы предложил не модифицировать строку как она есть, а проанализировать ее - создание json из проанализированных вами значений (прокомментировано выше).Или, для грязного решения, вы можете просто удалить все кавычки и сделать замену строки - это будет действительный JSON:

var cleaned = yourJson.Replace("\"", string.Empty).Replace("lon", "lng");

Но мне кажется, что это неправильно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...