将双列表转换为字符串

时间:2014-06-03 02:53:11

标签: c# ajax arrays json list

我有一个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]。

2 个答案:

答案 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));

注意错误处理,这些代码片段在错误的值上会失败(例如,list为null,str为null,str包含不可转换为double值等)

答案 1 :(得分:0)

JSON.stringfy本身返回一个字符串然后为什么需要将值转换为string.You可以使用JSON.parse(&#39; @ Html.Raw(jsonText)&#39;)来解析json aspx页面上的字符串。这个json字符串可以使用Session变量传递。

相关问题