【发布时间】:2014-12-04 14:38:47
【问题描述】:
我有一个 JSON 对象,我已将其反序列化为服务器端的对象。其中一个对象是一个对象数组列表,每个对象是一个字符串字典,数组。在我的手表中,我可以深入查看对象并查看对象中的所有内容,但我无法弄清楚如何在代码中访问对象内部的数据。我需要遍历每个对象并访问字典中的键和值。 Rigor 对象是我想要深入研究的对象。
我已经硬编码了一个示例,说明输入的数据是什么样的。
string rigorSelection = "{\"StandardID\":165638," +
"\"ItemTypes\":[\"Multiple Choice\",\"True/False\",\"Constructed Response\",\"Explicit Constructed Response\",\"Select Dropdown\",\"Evidence Based Selected Response\",\"Drag and Drop\",\"Selectable Text\",\"Multi-Part\",\"Graphing\",\"Matching\"], " +
"\"TotalItemCount\":10," +
"\"StandardName\":\"CCSS.9_12.MA.N.RN.2\"," +
"\"Rigor\":[" +
"{\"Remembering\":[0,0,0,0,0,0,0,0,0,0,0]}," +
"{\"Understanding\":[0,0,0,0,0,0,0,0,0,0,0]}," +
"{\"Applying\":[0,0,0,0,0,0,0,0,0,0,0]}," +
"{\"Analyzing\":[0,0,0,0,0,0,0,0,0,0,0]}," +
"{\"Evaluating\":[0,0,0,0,0,0,0,0,0,0,0]}," +
"{\"Creating\":[0,0,0,0,0,0,0,0,0,0,0]}," +
"{\"Not Specified\":[0,0,0,0,0,0,0,0,0,0,0]}]" +
"}";
System.Web.Script.Serialization.JavaScriptSerializer jSerializer =
new System.Web.Script.Serialization.JavaScriptSerializer();
AssessmentWCFVariables assessmentWCFVariable = jSerializer.Deserialize<AssessmentWCFVariables>(rigorSelection);
var rigorCounts = assessmentWCFVariable.Rigor;
数据被反序列化到的类是这个......
[Serializable]
[DataContract]
public class AssessmentWCFVariables
{
[DataMember]
public int StandardID { get; set; }
[DataMember]
public string StandardName { get; set; }
[DataMember]
public ArrayList ItemTypes { get; set; }
[DataMember]
public ArrayList Rigor { get; set; }
[DataMember]
public int TotalItemCount { get; set; }
}
更新 rigorCounts 是对象的 ArrayList。我可以遍历每个对象,但是我尝试访问字典中的键/值对的所有内容都会给我一个错误。我正在尝试这样做。
foreach (var rigor in rigorCounts)
{
var key = //code to get key of rigor i.e Remembering
var value = //code to get the arrary i.e. [0,0,0,0,0,0,0,0,0,0,0]
}
【问题讨论】:
-
您在访问该数据的哪个部分遇到问题?
-
我已经尝试了您的代码,看起来它可以工作。究竟是什么问题?你能补充更多细节吗?
-
AssessmentWCFVariables.Rigor 成员的类型是什么?例如,如果你这样做,输出是什么?
AssessmentWCFVariables awv = [Wherever this comes from]; object o = awv.Rigor[0]; System.Console.WriteLine((typeof o).ToString()); -
我在你的代码中没有看到任何错误,你从哪里得到的?
标签: c# .net json serialization