Как удалить двойные кавычки из ответа JSON в javascript?

Я пытаюсь добавить несколько маркеров на карту Google и нашел способ сделать это здесь. Теперь у меня есть ответ массива json от сервера, как показано ниже.

 // function to get user names and addresses
public function getUserAddresses(Request $request)
{
    $users = User::where('address', '!=', null)->select('name', 'address')->get();  //this is a laravel query

    $userData = [];

    foreach ($users as $user) {
        $userData[$user->name] = $user->address;
    }
    return $userData;
}

Этот код выше дает мне ответ ниже.

{
  "plumber1": "-1.2523238641713191,36.87899683074249",
  "plumber2": "-1.2192245641713191,36.87899687428849",
  "allan plumber": "-1.2192238641713191,36.87899683068849"
}

но для меня, чтобы использовать эти данные, они должны быть в этом формате, как показано ниже в javascript.

[
   ["plumber1", -1.2523238641713191,36.87899683074249],
   ["plumber2", -1.2192245641713191,36.87899687428849],
   ["allan plumber", -1.2192238641713191,36.87899683068849]
];
Object.entries(obj)?
Eddie 20.04.2019 16:28

Вы хотите, чтобы результат был исходным объектом javascript или строкой json?

Maheer Ali 20.04.2019 16:33

как объект javascript..но без кавычек..

Bhavin 20.04.2019 20:43

@Eddie varlocations = Object.entries(data); я даже пробовал это, но когда console.info(locations); он отображается с кавычками.

Bhavin 20.04.2019 20:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
472
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте json_decode

ini_set( 'precision', 17 );

$jsonToArray = json_decode($json, JSON_NUMERIC_CHECK);

json_decode не работает для массивов..

Bhavin 20.04.2019 20:55
Ответ принят как подходящий

Вы можете использовать этот php-код

$str = '{
  "plumber1": "-1.2523238641713191,36.87899683074249",
  "plumber2": "-1.2192245641713191,36.87899687428849",
  "allan plumber": "-1.2192238641713191,36.87899683068849"
}';

$array =json_decode($str);
$new_array = [];
foreach ($array as $key => $value) {
  $coordinates = explode(',',$value);
  $coordinate1 = (float) $coordinates[0];
  $coordinate2 = (float) $coordinates[1];
  $new_array[] = array($key,$coordinate1,$coordinate2);
}
print_r($new_array);

ВЫХОД

        Array
(
    [0] => Array
        (
            [0] => plumber1
            [1] => -1.25232386
            [2] => 36.878996830742
        )

    [1] => Array
        (
            [0] => plumber2
            [1] => -1.2192245641713
            [2] => 36.878996874288
        )

    [2] => Array
        (
            [0] => allan plumber
            [1] => -1.2192238641713
            [2] => 36.878996830688
        )

)

Вы также можете проверить демо здесь

Вот версия Javascript

    <script type = "text/javascript">
var str = `{
  "plumber1": "-1.2523238641713191,36.87899683074249",
  "plumber2": "-1.2192245641713191,36.87899687428849",
  "allan plumber": "-1.2192238641713191,36.87899683068849"
}`;
var obj = JSON.parse(str);
var array = [];
var counter =0;
for (var key in obj) {
  var myarr =  obj[key].split(",");
    array[counter] = [key, parseFloat(myarr[0]), parseFloat(myarr[1])];
    counter++
}
console.info(array);
</script>

Спасибо, теперь массив JSON, из которого я хочу удалить цитаты, является ответом на запрос на получение. Это означает, что он является динамическим, а не строковым.. так что из вашего ответа. здесь -> $array =json_decode($str); я должен поставить ответ прямо .. не строку ..

Bhavin 20.04.2019 20:54

и я просил изменить ответ в javascript..

Bhavin 20.04.2019 20:55

Я обновил свой ответ. Теперь он даст вам плавающие числа вместо строк.

Zain Farooq 20.04.2019 20:57

Я загрузил обе версии, такие как javascript и php. Теперь можно наслаждаться... :)

Zain Farooq 20.04.2019 21:18

Мой Бог!!! Большое вам спасибо... @Zain Farooq

Bhavin 20.04.2019 21:43

Другие вопросы по теме