You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将DGV更新内容序列化回原有JSON文件并保持格式一致的实现咨询

我已将反序列化后的JSON文件内容直接输出到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文件的片段,我通过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"
    }
]
}

内容的提问来源于stack exchange,提问作者Joe Fisher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:06:03