我有一个JSON,其格式如下:
{
"header": {
"source_code": "S12345"
"user_id": "987456"
},
"body":{
"source_code": "S12345",
"wrapper_list": [
{
"item_wrapper_code": "WRAP01",
"item_amount": 10,
"item_type_amount": 2,
"creation_date": 20191115,
"worker": "W001",
"workstation_no": "1"
"item_list":[
{
"item_code": "I001"
"item_id": "",
"bar_code": "123987456"
"remark": ""
},
{
"item_code": "I002"
"item_id": "",
"bar_code": "213987456"
"remark": ""
}
]
}
]
}
}
上面的JSON对象的主体包含父子关系中的数据。
Parent: WRAP01
Child1: Item I001
Child2: Item I002
我必须能够解析此JSON对象,并将这些详细信息作为行插入到相应的表中,即,将与父相关的东西插入父表,并将与子相关的东西插入子表。
我请专业人士在此指导我。
因此,将Json解析为实体框架对象是不好的做法。
首先,创建将映射到Json的数据传输对象(DTO)。它就像是:RequestDto,BodyDto,WrapperDto,WrapperItemDto。
要进行解析,您可以使用类似newtonsoft的工具,请参见示例:https://www.newtonsoft.com/json/help/html/DeserializeObject.htm
然后,您应编写将映射到数据库表的EntityFramework对象。希望您了解数据库理论,并且已经阅读有关EntityFramework及其如何实现不同数据库关系的一些文章。如果没有,请阅读。
您需要一对多关系。一对多关系可以通过以下方式配置。
您可以使用第一种方法。它更容易。因此,您需要2个类:WrapperEntity,WrapperItemEntity。
然后,您应该编写将WrapperDto转换为WrapperEntity并将WrapperItemDto转换为WrapperItemEntity的代码。然后将* Entity对象保存在数据库中。
这是实现这种逻辑的最佳实践。我将其解释为最高级别。有关详细信息,您可以分别搜索每个问题。