2014-06-03 6 views
0

У меня есть массив double, который я отправляю через JSON на мою страницу aspx.Преобразование двойного списка в строку

var array = [] //this array is having double values in it. (48.154176701412744,11.551694869995117),(48.15131361676726,11.551694869995117),(48.15555092529958,11.549291610717773) 

var jsonText = JSON.stringify({ list: array }); 

И следующий метод я передаю его:

public static void Demo(double[] list) 

Теперь, как я могу получить доступ к массиву отправки и преобразовать его в строку, так что я могу сохранить его в моей колонке базы данных как строка? Потому что, когда я принимаю его как

public static void Demo(string[] list) 

Он даже не принимает объект JSON. И когда я делаю метод как:

public static void Demo(double[] list) 

Он принимает массив как [0 0 0].

ответ

0

Вы можете присоединиться все двойники с некоторым ограничителем:

string.Join(";", list); 

Однако, следует обратить внимание на использование десятичного разделителя. Если значение будет сохранено как 1.52;0.4, позже вы можете выйти на другой компьютер или изменить локаль. Я бы решить, какие Сепаратор я буду всегда использовать для этого случая и будет преобразовывать значения в строку и обратно с сепаратором:

// unfortunately, not tested 
var ni = NumberFormatInfo.CurrentInfo; // not sure if you better call Clone() here 
ni.NumberDecimalSeparator = "."; 
string todatabase = string.Join(";", list.Select(_ => _.ToString(ni))); 

Чтобы сделать обратную операцию:

// unfortunately, not tested 
var ni = NumberFormatInfo.CurrentInfo; // not sure if you better call Clone() here 
ni.NumberDecimalSeparator = "."; 
// `str` is read from database value 
IEnumerable<double> fromdatabase = str.Split(';').Select(_ => double.Parse(_, ni)); 

Обратите внимание на ошибки обработка этих фрагментов кода приведет к сбою при неудачных значениях (например, список был пустым, str был нулевым, str содержал неконвертируемые значения для двойных значений и т. д.)

+0

Я обновил свой вопрос, теперь вы можете понять, что такое моя точная проблема. –

+0

О, так, я не помощник, ничего не знаю о JSON -_- Но вы уверены, что массив является парным массивом? Я вижу массив двойных * пар * (точки, может быть?) – mazharenko

+0

Нет! он имеет строки в нем, но когда я отправляю его методу, он терпит неудачу в строке, но он по крайней мере принимает объект JSON, когда его double. Это странно и смущает меня. –

0

JSON.stringfy сам возвращает строку, то почему вам нужно преобразуйте значения в строку. Вы можете использовать JSON.parse ('@ Html.Raw (jsonText) ') для анализа строки json на странице aspx. Эта строка json может быть передана с использованием переменной Session.

Смежные вопросы