【发布时间】:2017-05-15 11:13:45
【问题描述】:
我正在尝试从 Deserilized Json 对象中读取。 目前我正在使用以下代码来反序列化 JSON 数据:
var jsondecode = Newtonsoft.Json.JsonConvert.DeserializeObject(Request.Cookies.Get("wrkb").Value);
我的 JSON 对象的内容:
{{
"shoppingbasket": [
{
"price": 12,
"product": "Lachum",
"quantity": 2,
"total": 24
},
{
"price": 2,
"product": "Laici",
"quantity": 3,
"total": 12
},
{
"price": 12,
"product": "Lachum",
"quantity": 1,
"total": 12
}
]
}}
我想将此 JSON 字符串转换为我可以使用的 .Net 对象集合。
例如,我希望能够在反序列化对象后生成这种类型的输出。
Shoppingbasket:
1) Product = Lachum, Price = 12, Quantity = 3, Total = 36
2) Product = Laici, Price = 2, Quantity = 3, Total = 6
Total-Price of basket = 42
这是我的解决方案,但是 pstrjds 的解决方案很优雅:
DataSet dataSet = Newtonsoft.Json.JsonConvert.DeserializeObject<DataSet>(Request.Cookies.Get("wrkb").Value);
DataTable dataTable = dataSet.Tables["shoppingbasket"];
string print = "";
double basket_total = 0.0;
foreach (DataRow row in dataTable.Rows)
{
print = "Product= " + row["product"] + " Price= " + row["price"] + " Quantity= " + row["quantity"] + " Total= " + row["total"];
basket_total += Convert.ToInt32(row["total"]);
<div class="row">
<ul class="col-md-12">
<li><div class="col-md-12">@print</div></li>
</ul>
</div>
}
现在我必须修复重复的项目
【问题讨论】:
-
您能否进一步澄清您的问题。 “我应该如何从这个对象中读取”是什么意思?你表明你正在反序列化它,你到底坚持了什么? JSON.Net 有一个通用的反序列化选项,为您的预期数据创建一个类并反序列化这些对象的数组。
-
我的意思是如何使用这个对象?是数组吗?
-
我稍微改写了这个问题并修复了损坏的 JSON(缺少一些引号)。如果我没有正确地重申问题,请随时编辑。
标签: c# asp.net json asp.net-mvc