Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 9
1

Почему дробные числа в JSON заключаются в кавычки?

23.06.2016, 14:52. Показов 6555. Ответов 19
Метки нет (Все метки)

Здравствуйте!Подскажите пожалуйста вывожу json_encode(); массив
JSON
1
{"type":"FeatureCollection","features":[{"type":"Feature","id":"174","geometry":{"type":"Point","coordinates":["57.0052451901459201, 40.9434523353066406"]},"properties":{"balloonContent":"22222","clusterCaption":"22222","hintContent":"2222"}},{"type":"Feature","id":"175","geometry":{"type":"Point","coordinates":["57.00521901459201, 40.9423353066406"]},"properties":{"balloonContent":"22222","clusterCaption":"22222","hintContent":"2222"}}]}
и в строчке "coordinates":["57.00521901459201, 40.9423353066406"] координаты заключаются в кавычки!Как сделать так что бы кавычки не подставлялись?Помогите пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2016, 14:52
Ответы с готовыми решениями:

json и кавычки
день добрый. никак не могу сообразить в чем загвоздка мне нужно передать массив в функцию...

JSON.parse и экранированные кавычки
Код var temp = JSON.parse(''); выдаёт ошибку SyntaxError: JSON.parse: expected ',' or '}' after...

Цикл: В ячейки Excel записываются целые числа. Как исправить, чтобы числа были дробные?
Программа считает в цикле Y при заданных х и находит максимум и минимум функции. В ячейки Excel ...

Дробные числа
Дpoбныe числa oкpyглить дo 2 знaкoв пoслe зaпятoй как это можно сделать. к примеру число 23.333...

19
Почетный модератор
Эксперт С++
5842 / 2851 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
23.06.2016, 16:19 2
JSON не может хранить числа с плавающей запятой. Поэтому он представляет их как строку. Все правильно работает.
0
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 9
23.06.2016, 16:21  [ТС] 3
А как же сделать вывод без кавычек?
0
Почетный модератор
Эксперт С++
5842 / 2851 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
23.06.2016, 16:24 4
Во-первых на каком языке программирования вы это пытаетесь реализовать?
А во-вторых считывайте как строку, а дальше преобразовывайте ее в координаты. Используйте приведение типов.
0
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 9
23.06.2016, 16:27  [ТС] 5
Вывожу php из Mysql координаты передаю на карту Яндекса!Бес кавычек всё работает хорошо если указать в массиве напрямую координаты!
0
Почетный модератор
Эксперт С++
5842 / 2851 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
23.06.2016, 16:34 6
После того, как считали данные, но перед тем как передать яндексу координаты преобразовывайте их из строк в числа.
1
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 9
23.06.2016, 16:40  [ТС] 7
Да я уже это делал!Приведение типы (Float) к координатам удаляет запятую посередине и выдаёт первую координату перед запятой!
0
Почетный модератор
Эксперт С++
5842 / 2851 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
23.06.2016, 16:45 8
tim11111, ну удалите первый и последний символ строки (кавычки), разбейте ее на две части и тогда преобразовывайте.
0
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 9
23.06.2016, 16:53  [ТС] 9
Побывал кавычки создаются в самом массиве не регулярками ни чем не убираются!Вот если напрямую прописать то всё норм встаёт без кавычек!А вот через переменную добавляются кавычки!
0
Эксперт PHP
4476 / 3334 / 1087
Регистрация: 06.01.2011
Сообщений: 9,569
23.06.2016, 17:09 10
Либо я что-то не понимаю, либо всё нормально:
PHP
1
2
3
4
<?php
    echo json_encode([
        'coordinates' => [40.11279381, 70.32721320]
    ]);
Выводит:
Код
{"coordinates":[40.11279381,70.3272132]}
Числа не в кавычках.

Добавлено через 2 минуты
Или откуда берёте эти координаты? Как они в базе хранятся? Распечатку массива php покажите.
0
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 9
23.06.2016, 17:28  [ТС] 11
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 $coordinates = '57.0052190451459201, 40.942335367066406';
$returnValue =  array(
                  'type' => 'FeatureCollection',
                  'features' => 
                  array(
                    0 => 
                    array(
                      'type' => 'Feature',
                      'id' => $id_add,
                      'geometry' => 
                      array(
                        'type' => 'Point',
                        'coordinates' => 
                        array(
                          0 => $coordinates,
                         
                        ),
                      ),
                      'properties' => 
                      array(
                        'balloonContent' => '22222',
                        'clusterCaption' => '22222',
                        'hintContent' => '2222',
                      ),
                    ),
                  ),
                );
    
        
    echo json_encode($returnValue);
Попробуй вот это!Выводит координаты с кавычками
0
Эксперт PHP
4476 / 3334 / 1087
Регистрация: 06.01.2011
Сообщений: 9,569
23.06.2016, 17:45 12
Само собой, у Вас же они в строке хранятся. К тому же оба значение в одной. Неудивительно, что php их преобразует именно как строку.
PHP
1
$coordinates = array(57.0052190451459201, 40.942335367066406);
0
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 9
23.06.2016, 17:53  [ТС] 13
Что бы вы посоветовали сделать?Приведение к нужному типу теряется разделитель запятая!э
0
Эксперт PHP
4476 / 3334 / 1087
Регистрация: 06.01.2011
Сообщений: 9,569
24.06.2016, 06:25 14
Вы пробовали сделать, как я показал в сообщении #12?
0
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 9
24.06.2016, 10:23  [ТС] 15
Да пробовал!Но это так же что и в самом массиве указать на прямую координаты!Если в ваш пример вывести из базы данных то кавычки ставятся!
0
255 / 225 / 49
Регистрация: 23.09.2014
Сообщений: 767
24.06.2016, 10:29 16
tim11111, а теперь немного "магии"
0
Миниатюры
Почему дробные числа в JSON заключаются в кавычки?  
255 / 225 / 49
Регистрация: 23.09.2014
Сообщений: 767
24.06.2016, 10:31 17
Цитата Сообщение от tim11111 Посмотреть сообщение
Да пробовал!Но это так же что и в самом массиве указать на прямую координаты!Если в ваш пример вывести из базы данных то кавычки ставятся!
В работе с MySQL все данные выводятся как string. В том числе и float.
0
255 / 225 / 49
Регистрация: 23.09.2014
Сообщений: 767
24.06.2016, 10:38 18
Пример:
0
Миниатюры
Почему дробные числа в JSON заключаются в кавычки?   Почему дробные числа в JSON заключаются в кавычки?   Почему дробные числа в JSON заключаются в кавычки?  

Почему дробные числа в JSON заключаются в кавычки?  
Эксперт PHP
4476 / 3334 / 1087
Регистрация: 06.01.2011
Сообщений: 9,569
24.06.2016, 10:40 19
Custos, у него два числа в одном элементе массива:
Код
"coordinates":["57.00521901459201, 40.9423353066406"]
Даже при учёте, что заместо числа с плавающей точкой мы из базы получим строку, у нас должно получиться вот что:
Код
"coordinates":["57.00521901459201", "40.9423353066406"]
То есть в кавычках, но как разные элементы массива.
Либо автор темы хранит эти два числа в одной ячейке в базе, либо я вообще ничего не понимаю.
0
255 / 225 / 49
Регистрация: 23.09.2014
Сообщений: 767
24.06.2016, 11:02 20
Para bellum, скорее всего в одной
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2016, 11:02

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Дробные числа
Добрый вечер. Помогите мне пожалуйста в этом задании: Нужно создать класс Fraction для работы...

Дробные числа, С++
Уважаемые знатоки, требуется ваша помощь. Передо мной стоит задача посчитать приблизительную сумму...

Дробные числа
Задание: Напишите функцию main(), которая получает случайные дробные числа от пользова- теля,...

Дробные числа
пишу в Builder C++ нужно дробное число отображать в едите получается примерно так: double...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.