我一直试图存储一个json对象,其结构非常嵌套,如下所示:(这是来自api文档的虚拟数据)
i1_axis = C.Axis.new_unique_dynamic_axis('1')
i2_axis = C.Axis.new_unique_dynamic_axis('2')
i1 = sequence.input(shape=num_tokens, is_sparse=True, sequence_axis=i1_axis, name='i1')
i2 = sequence.input(shape=num_tokens, is_sparse=True, sequence_axis=i2_axis, name='i2')
我使用json2csharp将其转换为以下对象:
{
"orders": [
{
"id": 556729,
"certificate": {
"common_name": "digicert.com",
"dns_names": [
"digicert.com",
"www.digicert.com"
],
"valid_till": "2017-08-19",
"signature_hash": "sha256"
},
"status": "issued",
"date_created": "2014-08-19T18:16:07+00:00",
"organization": {
"id": 117483,
"name": "DigiCert, Inc."
},
"validity_years": 3,
"container": {
"id": 5,
"name": "College of Science"
},
"product": {
"name_id": "ssl_plus",
"name": "SSL Plus",
"type": "ssl_certificate"
},
"price": 293
}, ... (lists more dummy orders, but you get the point, valid json structure with nested objects that hold arrays, etc)
除了包含所有其他对象的类名class Orders
{
public class Certificate
{
public int id { get; set; }
public string common_name { get; set; }
public List<string> dns_names { get; set; }
public string valid_till { get; set; }
public string signature_hash { get; set; }
}
public class Organization
{
public int id { get; set; }
public string name { get; set; }
}
public class Container
{
public int id { get; set; }
public string name { get; set; }
}
public class Product
{
public string name_id { get; set; }
public string name { get; set; }
public string type { get; set; }
}
public class Order
{
public int id { get; set; }
public Certificate certificate { get; set; }
public string status { get; set; }
public bool is_renewed { get; set; }
public string date_created { get; set; }
public Organization organization { get; set; }
public int validity_years { get; set; }
public Container container { get; set; }
public Product product { get; set; }
public bool has_duplicates { get; set; }
public int price { get; set; }
public string product_name_id { get; set; }
}
public class Page
{
public int total { get; set; }
public int limit { get; set; }
public int offset { get; set; }
}
public class RootObject
{
public List<Order> orders { get; set; }
public Page page { get; set; }
}
}
之外,所有这些都是生成的。
我的问题似乎来自正确反序列化:我尝试了JSON.net文档中引用的方式,但它没有包含根对象(我假设它是&#39;没有出去就没有工作)。我将列出我尝试在下面完成此操作的一些方法(第一个是直接来自JSON.net文档):我将为我的尝试编号
Orders
这似乎是主要的错误:
无法将当前JSON对象(例如{&#34; name&#34;:&#34; value&#34;})反序列化为类型System.Collections.Generic.List`1 [APIinit.Orders + RootObject]&#39;因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。 要修复此错误,请将JSON更改为JSON数组(例如[1,2,3])或更改反序列化类型,使其成为普通的.NET类型(例如,不是像整数这样的基本类型,而不是类似的集合类型可以从JSON对象反序列化的数组或List。 JsonObjectAttribute也可以添加到类型中以强制它从JSON对象反序列化。 路径&#39;订单&#39;,第1行,第10位。
我想了解如何正确创建此对象。