asp.net mvc中怎么样解析 json
我实现的是一个基于cookies的购物车,以json的格式存放内容。如:varcar=[{id:"1",name:"迷失北岸",price:"36",bcount:"1"...
我实现的是一个基于cookies的购物车,以json的格式存放内容。如:
var car = [{id : "1", name : "迷失北岸", price : "36", bcount : "1"}];
增删改查都已经实现了。问题:
1. 怎么样把这个 car 转化为 json 字符串然后存入 cookies 中。
2. 在进入购物车时,服务端我获取到这个 cookies 中的字符串,怎么解析呢?
请给个关键代码好吗?谢谢啊 展开
var car = [{id : "1", name : "迷失北岸", price : "36", bcount : "1"}];
增删改查都已经实现了。问题:
1. 怎么样把这个 car 转化为 json 字符串然后存入 cookies 中。
2. 在进入购物车时,服务端我获取到这个 cookies 中的字符串,怎么解析呢?
请给个关键代码好吗?谢谢啊 展开
展开全部
public static DataTable JsonToDataTable(string strJson)
{
//取出表名
Regex rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
string strName = rg.Match(strJson).Value;
DataTable tb = null;
//去除表名
strJson = strJson.Substring(strJson.IndexOf("[") + 1);
strJson = strJson.Substring(0, strJson.IndexOf("]"));
//获取数据
rg = new Regex(@"(?<={)[^}]+(?=})");
MatchCollection mc = rg.Matches(strJson);
for (int i = 0; i < mc.Count; i++)
{
string strRow = mc[i].Value;
string[] strRows = strRow.Split(',');
//创建表
if (tb == null)
{
tb = new DataTable();
tb.TableName = strName;
foreach (string str in strRows)
{
DataColumn dc = new DataColumn();
string[] strCell = str.Split(':');
dc.ColumnName = strCell[0].ToString();
tb.Columns.Add(dc);
}
tb.AcceptChanges();
}
//增加内容
DataRow dr = tb.NewRow();
for (int r = 0; r < strRows.Length; r++)
{
dr[r] = strRows[r].Split(':')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
}
tb.Rows.Add(dr);
tb.AcceptChanges();
}
return tb;
}
用法:
htmlBody 的例子:
{"Mobile":"15655959999","QueryResult":"True","Province":"安徽","City":"黄山","AreaCode":"0559","PostCode":"245000","Corp":"中国联通","Card":"GSM"}
string json = "{table:" + htmlBody + "}";
DataTable dt = Common.JsonExtensions.JsonToDataTable(json);
datdatable的数据会取了吧!
{
//取出表名
Regex rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
string strName = rg.Match(strJson).Value;
DataTable tb = null;
//去除表名
strJson = strJson.Substring(strJson.IndexOf("[") + 1);
strJson = strJson.Substring(0, strJson.IndexOf("]"));
//获取数据
rg = new Regex(@"(?<={)[^}]+(?=})");
MatchCollection mc = rg.Matches(strJson);
for (int i = 0; i < mc.Count; i++)
{
string strRow = mc[i].Value;
string[] strRows = strRow.Split(',');
//创建表
if (tb == null)
{
tb = new DataTable();
tb.TableName = strName;
foreach (string str in strRows)
{
DataColumn dc = new DataColumn();
string[] strCell = str.Split(':');
dc.ColumnName = strCell[0].ToString();
tb.Columns.Add(dc);
}
tb.AcceptChanges();
}
//增加内容
DataRow dr = tb.NewRow();
for (int r = 0; r < strRows.Length; r++)
{
dr[r] = strRows[r].Split(':')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
}
tb.Rows.Add(dr);
tb.AcceptChanges();
}
return tb;
}
用法:
htmlBody 的例子:
{"Mobile":"15655959999","QueryResult":"True","Province":"安徽","City":"黄山","AreaCode":"0559","PostCode":"245000","Corp":"中国联通","Card":"GSM"}
string json = "{table:" + htmlBody + "}";
DataTable dt = Common.JsonExtensions.JsonToDataTable(json);
datdatable的数据会取了吧!
追问
你这是写的什么啊,在表现层怎么能用Datatable呢,我组长有完美主义,我要是用这个,他得杀了我,不过还是谢谢你
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用一楼的方法 ,这种是一种通用帮助方法,效率可能不高 。。。还可以XML转化为DataTable,很多数据格式的转化帮助方法,然后DataTable遍历DataRow 就可以Tolist() 在View中循环显示了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的这句是怎样获取的?
var car = [{id : "1", name : "迷失北岸", price : "36", bcount : "1"}];
var car = [{id : "1", name : "迷失北岸", price : "36", bcount : "1"}];
追问
为了您方便回答我才这样写的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询