【问题标题】:Need Help on Looping Through Deserialized Custom Class需要帮助通过反序列化自定义类循环
【发布时间】:2010-11-27 00:45:54
【问题描述】:

我很难弄清楚如何公开(和循环)属性 在 WCF 服务中序列化(使用 JSON)的我的 Categories 类和 在服务器上反序列化,如下图所示。

JavaScriptSerializer serializer = new JavaScriptSerializer();
Category cat  = serializer.Deserialize<Category>(param1);

 // Missing a cast here?    

foreach (var c in cat)
{
    ele.InnerHtml += String.Format("<option value={0}>{1} &gt;</option>", 
        c.field.id, c.field.path);
}

哪里(我收集)我错了是我必须投射我的类别 对象是 ICollection 还是 IEnumerable?我认为这是步骤 我需要建议(如果我确实在吠叫正确的树?)。

【问题讨论】:

  • 你认为循环遍历一个反序列化的自定义类的属性与循环遍历任何其他类的属性有什么不同吗?
  • 这不是我遇到问题的循环,而是 cat 对象的转换,因此暴露了 GetEnumerator。如果我在这里错了,您介意提供解决方案吗?

标签: wcf json ienumerable serialization


【解决方案1】:

看起来您正在尝试遍历作为单个项目而不是列表的类别。

【讨论】:

  • 谢谢,我明白了。您能否指出如何将 Category 转换为 Collection 或 List 或 IEnumerable?
  • 序列化之前的“param1”是什么?
  • param1 实际上是 dtSerialized,如下所示: dtSerialized = JSONHelper.Serialize(myCategory);
  • 这是我的类别类: public class Category { public Category() { } public Field field = new Field();公共字符串模型{get;设置;} 公共 int jsonkey { 获取;放; } } 公共类字段 { 公共字段(){ } 公共 int 级别 { 获取;放; } 公共 int id { 获取;放; } public int parentid { 获取;放; } 公共字符串名称 { 获取;放; } 公共字符串路径 { 获取;放; } }
  • 这里有更多关于 "dtSerialized" - Category myCategory = new Category(); foreach(dt.Rows 中的 DataRow 行){ myCategory.field.id = (int)row["categoryid"]; myCategory.field.path = (string)row["cat_path"]; } dtSerialized = JSONHelper.Serialize(myCategory)
猜你喜欢
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多