【发布时间】:2015-06-23 06:09:18
【问题描述】:
这是我未解析的 JSON:
{ "1": [ [ [ 2015, 6, 1, 8, 0, 0, 3600, "Europe/London", "BST", 1 ], [ 2015, 6, 1, 9, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 1, 8, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 1, 10, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 1, 9, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 1, 10, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 1, 9, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 1, 11, 0, 0, 3600, “欧洲/伦敦”、“英国夏令时”、1 ] ] ]、“2”:[ [ [ 2015, 6, 2, 8, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 2, 9, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 2, 8, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 2, 10, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 2, 9, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 2, 10, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 2, 9, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 2, 11, 0, 0, 3600, “欧洲/伦敦”、“英国夏令时”、1 ] ] ]、“3”:[ [ [ 2015, 6, 3, 8, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 3, 9, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 3, 8, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 3, 10, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 3, 9, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 3, 10, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 3, 9, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 3, 11, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ] ] ], "4": [ [ [ 2015, 6, 4, 8, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 4, 9, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 4, 8, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 4, 10, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 4, 9, 0, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 4, 10, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ] ], [ [ 2015, 6, 4, 9, 30, 0, 3600, "欧洲/伦敦", "BST", 1 ], [ 2015, 6, 4, 11, 0, 0, 3600, “欧洲/伦敦”、“英国夏令时”、1 ] ] ]}
这是基本格式:
根
Day of the month
time slot
time slot start
time slot end
这是格式化后的样子:
我终其一生都无法弄清楚如何解决这个问题。这个问题应该类似于How do I parse a JSON object in C# when I don't know the key in advance?
如果我执行以下操作,我会收到“System.InvalidOperationException:无法访问 Newtonsoft.Json.Linq.JValue 上的子值。”
JObject objTimes = JObject.Parse(strJson);
foreach (var day in objTimes["1"])
{
divTimes.InnerHtml += day[0][0][0];
}
【问题讨论】:
-
用 JSON 的全部内容蒙蔽我们是没有帮助的。您可以将其减少到 5 行,并且仍然代表手头 JSON 的性质。
-
如果这个问题与另一个问题相似,那么另一个问题有帮助吗?如果不是为什么?您可能会收到类似的答案。请阅读How to Ask
-
尝试将您的 JSON 发布到 jsonformatter.curiousconcept.com,您将能够更轻松地查看结构。根对象是某种字典,键是整数值字符串,值是嵌套数组。使用
JObject.Parse加载它。 -
看起来最里面的数组代表了某个类的字段:
[ 2015, 6, 3, 9, 30, 0, 3600, "Europe/London", "BST", 1 ]你能设计一个代表这个数据的类吗?我猜不出每个字段的含义。 -
我减少了 JSON。另一个问题和答案没有帮助,因为我的 JSON 格式很奇怪,但我无法控制 JSON。我认为另一个问题没有帮助,因为我的 JSON 不是“名称:值”格式。