JSON замена запятой на точку

  • Автор темы Автор темы braind
  • Дата начала Дата начала

braind

Client
Регистрация
10.10.2012
Сообщения
119
Реакции
12
Баллы
18
получаю в json дробное число с запятой, например 4,2554
а нужно чтобы с точкой было (для записи в БД).
Никак не получается применить Replace к дробному числу, получаю ошибку 'decimal' does not contain a definition for 'Replace'
Подскажите, пожалуйста, код - взять переменную из json и заменить запятую на точку
 
получаю в json дробное число с запятой, например 4,2554
а нужно чтобы с точкой было (для записи в БД).
Никак не получается применить Replace к дробному числу, получаю ошибку 'decimal' does not contain a definition for 'Replace'
Подскажите, пожалуйста, код - взять переменную из json и заменить запятую на точку
decimal - это целые числа, а вам нужно double. Отравьте часть C# кода сюда, если не выйдет.
 
получаю в json дробное число с запятой, например 4,2554
а нужно чтобы с точкой было (для записи в БД).
Никак не получается применить Replace к дробному числу, получаю ошибку 'decimal' does not contain a definition for 'Replace'
Подскажите, пожалуйста, код - взять переменную из json и заменить запятую на точку

Вообще можно сконвертить полученное число в строку и уже в строке сделать реплейс
 
Последнее редактирование:
decimal - это целые числа, а вам нужно double. Отравьте часть C# кода сюда, если не выйдет.
Я практически не знаю C#, наобум что-то пытаюсь собрать.
Попробовал double, но получаю ту же ошибку "'double' does not contain a definition for 'Replace'"
Видимо к переменным json это не применимо
C#:
Развернуть Свернуть Копировать
double average_rating = project.Json.average_rating.Replace(".", ",");
 
Я практически не знаю C#, наобум что-то пытаюсь собрать.
Попробовал double, но получаю ту же ошибку "'double' does not contain a definition for 'Replace'"
Видимо к переменным json это не применимо
C#:
Развернуть Свернуть Копировать
double average_rating = project.Json.average_rating.Replace(".", ",");
C#:
Развернуть Свернуть Копировать
double average_rating = double.Parse(Convert.ToString(project.Json.average_rating).Replace(".",","));
return average_rating;
 
  • Спасибо
Реакции: Greez и vedi108
C#:
Развернуть Свернуть Копировать
double average_rating = double.Parse(Convert.ToString(project.Json.average_rating).Replace(".",","));
return average_rating;
Не срабатывает. В этом варианте мы меняем . на , а нужно наоборот.
Если поменять местами точку и запятую, получаем ошибку "Входная строка имела неверный формат."
Я так понимаю, зенка не воспринимает итоговое значение как число
 
Не срабатывает. В этом варианте мы меняем . на , а нужно наоборот.
Если поменять местами точку и запятую, получаем ошибку "Входная строка имела неверный формат."
Я так понимаю, зенка не воспринимает итоговое значение как число
Вы можете показать ту часть кода, где у вас проблема? Не понятно каким кодом куда вы что вставляете, что у вас ошибка.
 
Вы можете показать ту часть кода, где у вас проблема? Не понятно каким кодом куда вы что вставляете, что у вас ошибка.
Больше нет никакого кода)
Я получаю JSON, делаю парсинг. В одном из полей json лежит дробное число 4,3445
Мне его нужно записать в базу данных, но с запятой записать не получается, потому что в бд дробные числа через точку.

Я переделал ваш код, чтобы на выходе получить строку, поскольку решил, что в базе все равно установлен тип поля и писать туда можно и текст. Попробовал и все получилось, в базу записалось корректно.
string average_rating = Convert.ToString(project.Json.average_rating).Replace(",",".");
return average_rating;

Так что благодарю за помощь!
 
Больше нет никакого кода)
Я получаю JSON, делаю парсинг. В одном из полей json лежит дробное число 4,3445
Мне его нужно записать в базу данных, но с запятой записать не получается, потому что в бд дробные числа через точку.

Я переделал ваш код, чтобы на выходе получить строку, поскольку решил, что в базе все равно установлен тип поля и писать туда можно и текст. Попробовал и все получилось, в базу записалось корректно.


Так что благодарю за помощь!
Исходник json в текстовом файле предоставьте пожалуйста, посмотрим, чем можно Вам помочь.
 
Не срабатывает. В этом варианте мы меняем . на , а нужно наоборот.
Если поменять местами точку и запятую, получаем ошибку "Входная строка имела неверный формат."
Я так понимаю, зенка не воспринимает итоговое значение как число

Тогда получайте кодом string в зеннопеременную и вставляйте в базу. Либо в базе замените тип ячейки с decial на text или double
C#:
Развернуть Свернуть Копировать
string average_rating = Convert.ToString(project.Json.average_rating).Replace(",",".");
return average_rating;
 
Тогда получайте кодом string в зеннопеременную и вставляйте в базу. Либо в базе замените тип ячейки с decial на text или double
C#:
Развернуть Свернуть Копировать
string average_rating = Convert.ToString(project.Json.average_rating).Replace(",",".");
return average_rating;
Не совсем понимаю, чем децимал так не угодил? тот же дубл только диапазон чисел другой
 
Не совсем понимаю, чем децимал так не угодил? тот же дубл только диапазон чисел другой
Та перепутал, думал так только целые числа пишутся, но вижу что не только. В переменную вышло получить нужное число или вы не знаете как в переменную вставить?
 
Та перепутал, думал так только целые числа пишутся, но вижу что не только. В переменную вышло получить нужное число или вы не знаете как в переменную вставить?
Если вопрос ко мне, то да, я получил нужное число (с точкой) в виде строки. Мне строки достаточно.
А получение в виде числа видимо невозможно, потому что формат double с точкой не воспринимается зенкой как корректный
 
Если вопрос ко мне, то да, я получил нужное число (с точкой) в виде строки. Мне строки достаточно.
А получение в виде числа видимо невозможно, потому что формат double с точкой не воспринимается зенкой как корректный
1. Зеннопостер переменные только string по умолчанию.
2. Не совсем понятно куда вы что вставляете, что говорите что зенка не воспринимает. Можно хотя бы скрин проекта, что бы увидить последовательность кубиков, в которых начинаются проблемы? Так как не понятно логическая цепочка. Я понял это так:
1. Парсим Json через зенку.
2. Через C# достаем в зеннопеременную число, заменяя запятую на точку.
3. Зеннокубиком База Данных - делаем запись в базу данных с помощью зенно переменных.

Либо тут что-то подобное описано.
 
1. Зеннопостер переменные только string по умолчанию.
2. Не совсем понятно куда вы что вставляете, что говорите что зенка не воспринимает. Можно хотя бы скрин проекта, что бы увидить последовательность кубиков, в которых начинаются проблемы? Так как не понятно логическая цепочка. Я понял это так:
1. Парсим Json через зенку.
2. Через C# достаем в зеннопеременную число, заменяя запятую на точку.
3. Зеннокубиком База Данных - делаем запись в базу данных с помощью зенно переменных.

Мне казалось что вопрос уже исчерпан), но если есть вопросы, то проясню
Вы все верно написали - парсим json, достаем переменную, заменяя запятую на точку.
Вы предложили сначала код для типа double
C#:
Развернуть Свернуть Копировать
double average_rating = double.Parse(Convert.ToString(project.Json.average_rating).Replace(",","."));
return average_rating;
Этот код не срабатывает, про него я и написал, что зенка не воспринимает число с точкой как double.
Поэтому корректный вариант - получить переменную в тип string
C#:
Развернуть Свернуть Копировать
string average_rating = Convert.ToString(project.Json.average_rating).Replace(",",".");
return average_rating;
Я так и сделал, все получилось, всех благодарю)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)