【发布时间】:2021-12-29 12:25:03
【问题描述】:
我有一个反序列化的 json 文件直接输出到 DGV,并且在 DGV 中对最终用户可见。当他们完成使用软件并关闭时,我想将更新的DGV 序列化到我的 json 文件中。
当我反序列化这个json文件时,代码如下:
代码
var v = JsonConvert.DeserializeObject<ToolJson>
(File.ReadAllText(@"\testLibrary.json"));
//set DGV source to our datums
toolDataGridView.DataSource = v.Datums.Cast<IInteresting>
().ToList();
当表单关闭时,我想将 DGV 读回我的 json 文件,格式与它已经完全相同。下面是 json 文件的 sn-p。我对 DGV 所做的只是跟踪数量、最后使用的员工以及是否需要退回工具。基本上是 json 文件的 5 个新条目。顶级属性。
Json 文件
{
"data": [
{
"BMC": "carbide",
"Cost": 0,
"Employee": "",
"GRADE": "Mill Generic",
"Location": "",
"description": "5/8-11\"",
"geometry": {
"CSP": false,
"DC": 0.433,
"HAND": true,
"LB": 2,
"LCF": 0.5,
"NOF": 4,
"NT": 1,
"OAL": 5,
"SFDM": 0.625,
"TP": 0.0909091,
"shoulder-length": 1.969,
"thread-profile-angle": 60
},
"guid": "0112c196-8a79-421d-8dda-d4aa964aa6d7",
"holder": {
"description": "Maritool CAT40-ER32-2.35",
"guid": "e800051b-e2d6-4699-a2b6-dad6466a0a0c",
"last_modified": 1485790626152,
"product-id": "CAT40-ER32-2.35",
"product-link": "",
"segments": [
{
"height": 0.148,
"lower-diameter": 1.5,
"upper-diameter": 1.97
},
{
"height": 0.836,
"lower-diameter": 1.97,
"upper-diameter": 1.97
},
{
"height": 0.176,
"lower-diameter": 1.57,
"upper-diameter": 1.57
},
{
"height": 0.09,
"lower-diameter": 1.57,
"upper-diameter": 1.75
},
{
"height": 0.425,
"lower-diameter": 1.75,
"upper-diameter": 1.75
},
{
"height": 0.05,
"lower-diameter": 1.75,
"upper-diameter": 1.85
},
{
"height": 0.03,
"lower-diameter": 2.442,
"upper-diameter": 2.502
},
{
"height": 0.145,
"lower-diameter": 2.502,
"upper-diameter": 2.502
},
{
"height": 0.079,
"lower-diameter": 2.502,
"upper-diameter": 2.215
},
{
"height": 0.118,
"lower-diameter": 2.215,
"upper-diameter": 2.215
},
{
"height": 0.079,
"lower-diameter": 2.215,
"upper-diameter": 2.502
},
{
"height": 0.143,
"lower-diameter": 2.502,
"upper-diameter": 2.502
},
{
"height": 0.03,
"lower-diameter": 2.502,
"upper-diameter": 2.442
},
{
"height": 0.125,
"lower-diameter": 1.75,
"upper-diameter": 1.75
}
],
"type": "holder",
"unit": "inches",
"vendor": "Maritool"
},
"onHandQty": 0,
"OrderQty": 5,
"post-process": {
"break-control": false,
"comment": "",
"diameter-offset": 17,
"length-offset": 17,
"live": true,
"manual-tool-change": false,
"number": 17,
"turret": 0
},
"product-id": "GMDTTM58-11UN4FL",
"product-link": "6010",
"start-values": {
"presets": [
{
"description": "",
"f_n": 0.012242786571039,
"f_z": 0.0031,
"guid": "eac33213-4083-35b8-afe3-17bd42a249f0",
"n": 4410.76054758139,
"n_ramp": 44110,
"name": "1018",
"tool-coolant": "flood",
"use-stepdown": false,
"use-stepover": false,
"v_c": 499.9999999999994,
"v_f": 54.6934307900093,
"v_f_leadIn": 54,
"v_f_leadOut": 54,
"v_f_plunge": 54,
"v_f_ramp": 54
},
{
"description": "",
"f_n": 0.010769117817118,
"f_z": 0.0028,
"guid": "f35f5601-68a9-477b-b4b0-2ffeedb3bef1",
"n": 1764.3042190325598,
"n_ramp": 1764,
"name": "4140",
"tool-coolant": "flood",
"use-stepdown": false,
"use-stepover": false,
"v_c": 200,
"v_f": 19.7602072531647,
"v_f_leadIn": 19,
"v_f_leadOut": 19,
"v_f_plunge": 19,
"v_f_ramp": 19
},
{
"description": "",
"f_n": 0.012091641057817,
"f_z": 0.0031,
"guid": "b118ce46-da35-4ed6-9806-b98e05ffe077",
"n": 2646.45632854884,
"n_ramp": 2646,
"name": "Tool Steel",
"tool-coolant": "flood",
"use-stepdown": false,
"use-stepover": false,
"v_c": 300,
"v_f": 32.8160584740056,
"v_f_leadIn": 32,
"v_f_leadOut": 32,
"v_f_plunge": 32,
"v_f_ramp": 32
},
{
"description": "",
"f_n": 0.01118476797848,
"f_z": 0.0028,
"guid": "0e1767f5-b0ef-422f-b49d-6cb8c3eb06ed",
"n": 3308.0704106860494,
"n_ramp": 3308,
"name": "Stainless Steel",
"tool-coolant": "flood",
"use-stepdown": false,
"use-stepover": false,
"v_c": 375,
"v_f": 37.0503885996837,
"v_f_leadIn": 37,
"v_f_leadOut": 37,
"v_f_plunge": 37,
"v_f_ramp": 37
}
]
},
"stockQty": 5,
"type": "thread mill",
"unit": "inches",
"vendor": "Gorilla Mill"
},
【问题讨论】: