我有一个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 :(得分: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变量传递。