不带列名称的javascript序列化
嗨,我想从数据库中检索纬度和经度,并将其保存到隐藏字段中 从数据库检索的表dt不带列名称的javascript序列化,javascript,asp.net,serialization,google-maps-api-3,Javascript,Asp.net,Serialization,Google Maps Api 3,嗨,我想从数据库中检索纬度和经度,并将其保存到隐藏字段中 从数据库检索的表dt latitude longitude 19.2094000000 73.0939000000 19.2244070000 73.1545760000 19.1659242536 82.2436523438 18.3336694458 80.4309082031 我正在使用javascript序列化程序将其保存在隐藏字段中 JavaScriptSerializer
latitude longitude
19.2094000000 73.0939000000
19.2244070000 73.1545760000
19.1659242536 82.2436523438
18.3336694458 80.4309082031
我正在使用javascript序列化程序将其保存在隐藏字段中
JavaScriptSerializer oSerializer = new JavaScriptSerializer();
var Result = (from c in dt.AsEnumerable()
select new
{
Latitude = c.Field<Decimal>("Latitude"),
Longitude = c.Field<Decimal>("Longitude")
}).ToList();
hdnControl.Value = oSerializer.Serialize(Result);
但我不想在结果数据中使用列名,因为我需要进一步处理它并从中提取lat和long
如何在没有列名的隐藏字段中保存数据,使数据看起来像这样
[
{19.2094000000,73.0939000000},
{19.2244070000,73.1545760000},
{19.1659242536,82.2436523438},
{18.3336694458,80.4309082031}
]
您将创建一个新数组并在其中添加格式化内容:
var oldArr = [
{"Latitude":19.2094000000,"Longitude":73.0939000000},
{"Latitude":19.2244070000,"Longitude":73.1545760000},
{"Latitude":19.1659242536,"Longitude":82.2436523438},
{"Latitude":18.3336694458,"Longitude":80.4309082031}
];
var newArr = [];
for (i = 0; i < oldArr.length; i++) {
newArr.push({oldArr[i].Latitude, oldArr[i].Longitude});
}
var oldArr=[
{“纬度”:19.2094000000,“经度”:73.0939000000},
{“纬度”:19.2244070000,“经度”:73.1545760000},
{“纬度”:19.1659242536,“经度”:82.2436523438},
{“纬度”:18.3336694458,“经度”:80.4309082031}
];
var newArr=[];
对于(i=0;i
“oldArr”是从数据库接收的数组,“newArr”是新创建的数组
然后循环遍历旧数组的所有项,只添加旧数组项的值(不带键)
最后,“newArr”包含您想要的内容。请尝试一下
string json = DataTableToJSON(dt_main);
jsonnew = @"{""Data"":" + json + "}";
private static string DataTableToJSON(DataTable table)
{
List<string[]> result = table.Rows
.Cast<DataRow>()
.Select(row => row.ItemArray
.Select(x => x.ToString())
.ToArray())
.ToList();
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(result);
//--------------another method------------
//ArrayList arr = new ArrayList();
//List<ArrayList> list = new List<ArrayList>();
//foreach (DataRow row in table.Rows)
//{
// arr = new ArrayList();
// foreach (DataColumn col in table.Columns)
// {
// arr.Insert(col.Ordinal, row[col]);
// }
// list.Add(arr);
//}
// JavaScriptSerializer serializer = new JavaScriptSerializer();
// return serializer.Serialize(list);
}
string json=DataTableToJSON(dt_main);
jsonnew=@“{”数据“:“+json+”}”;
私有静态字符串DataTableToJSON(DataTable表)
{
列表结果=table.Rows
.Cast()
.Select(行=>row.ItemArray
.Select(x=>x.ToString())
.ToArray())
.ToList();
JavaScriptSerializer serializer=新的JavaScriptSerializer();
返回序列化程序。序列化(结果);
//--------------另一种方法------------
//ArrayList arr=新的ArrayList();
//列表=新列表();
//foreach(table.Rows中的DataRow行)
//{
//arr=新的ArrayList();
//foreach(table.Columns中的数据列col)
// {
//arr.Insert(第列,第[col]行);
// }
//列表。添加(arr);
//}
//JavaScriptSerializer serializer=新的JavaScriptSerializer();
//返回序列化程序。序列化(列表);
}
您的目标不是有效的javascript,可能θ、λ值应该是数组而不是对象。woww,thanx很多,这给了我新的方法,在javascript数组中是可访问的示例是oldArr.map(函数(obj){return[obj.Latitute,obj.Longitude]}
或使用箭头函数:oldArr.map(obj=>[对象纬度,对象经度]
;-)
string json = DataTableToJSON(dt_main);
jsonnew = @"{""Data"":" + json + "}";
private static string DataTableToJSON(DataTable table)
{
List<string[]> result = table.Rows
.Cast<DataRow>()
.Select(row => row.ItemArray
.Select(x => x.ToString())
.ToArray())
.ToList();
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(result);
//--------------another method------------
//ArrayList arr = new ArrayList();
//List<ArrayList> list = new List<ArrayList>();
//foreach (DataRow row in table.Rows)
//{
// arr = new ArrayList();
// foreach (DataColumn col in table.Columns)
// {
// arr.Insert(col.Ordinal, row[col]);
// }
// list.Add(arr);
//}
// JavaScriptSerializer serializer = new JavaScriptSerializer();
// return serializer.Serialize(list);
}