我想知道一种聪明又有效的方法来区分另一个数据结构。
如果我们假设数据结构以JSON树的形式存储在数组中,则问题可以总结如下:
[
// Type 1
{
"name" : "value",
"key" : "other_value",
},
// Type 2
{
"name" : "value",
"key" : "other_value",
"another_key" : "another_value",
"data" : [
{ "a" : 1 },
{ "a" : 2 },
// ...
]
},
// ...
]
我想出的可能解决方案包括:
if 'another_key' in data
,但是当数据条目的数量和不同类型的数量增加时,维护起来很麻烦。"data" : [ ... ]
中的条目数固定,这将是一个很好的解决方案。您是否知道解决此问题和类似问题的更好方法?
编辑:更多示例
class Book {
public int id;
public string title;
}
class BookWithAuthor : Book {
public string author;
}
class BookWithMultipleAuthors : BookWithAuthor {
public string[] moreAuthors; // array structure
}
class BookWithSequel : BookWithAuthor {
public Book sequel; // list structure
}
class BookWithSequelsAndSpinoffs : BookWithAuthor {
public BookWithAuthor[] sequels;
public Book[] spinoffs;
// tree structure
}
想象一下Book[] books
的(破损)序列化,没有关于这本书是什么类型的信息,并且需要恢复原始格式(或等效形式)。
此外,为了简单起见,我使用了C#,这是一个普遍的问题。