写入动态JSON对象

本文关键字:对象 JSON 动态 | 更新日期: 2023-09-27 18:02:40

我有一个相当大的JSON对象,我使用本文中表达的方法在c#中将其转换为动态对象。要清楚,我使用的是寄存器序列化器方法,而不是MVC库中的方法。

我可以很好地读取这些值;但是,我希望能够更新他们的新信息。每次我尝试,程序崩溃没有太多的信息,为什么。有没有办法做到这一点,而不做一个新的类与数据契约?

如何写入值到这个动态对象?

编辑

我必须引用对象的值不正确,因为我得到一个"{"'System.Dynamic。错误信息

这是JSON

{
  "cfgFileString": "Canopy configuration file",
  "deviceType": "3.6GHz MIMO OFDM - Subscriber Module",
  "cfgUtcTimestamp": "2011-01-01T00:01:59Z",
  "cfgFileVersion": "1.0",
  "srcMacAddress": "0a-00-3e-41-c3-a1",
  "swVersion": "CANOPY 14.2 (Build 30)  SM-DES",
  "userParameters": {
    "smSyncConfig": {
      "timingPulseGated": 1
    },
    "smSyslogConfig": {
      "syslogServerApPreferred": 1,
      "syslogSMXmitControl": 0
    },
    "smQosConfig": {
      "lowPriorityUplinkCIR": 0,
      "lowPriorityDownlinkCIR": 0,
      "highPriorityChannel": 0,
      "bCastMIR": 0,
      "bCastMIRUnits": 0
    },
    "authenticationConfig": {
      "whispWebUserAccessMode": 0,
      "allowRejectThenLocal": 0,
      "authenticationKeyEncrypted": "37107535bd95272afceb980bdb2379cd9340f71d22f07b0bb988bd8741cf3fdbf2b7da94b7481a4df0b5ed1fc2f8d7b4",
      "authKeyOption": 0,
      "accounts": [
        {
          "userName": "admin",
          "level": 3,
          "readOnly": false,
          "password": ""
        },
        {
          "userName": "root",
          "level": 3,
          "readOnly": false,
          "password": ""
        }
      ]
    },
    "smNetworkConfig": {
      "networkAccess": 0,
      "enable8023link": 1
    },
    "radioConfig": {
      "installationColorCode": 1,
      "antennaGain": 0,
      "factoryResetOnDefaultPlug": 0,
      "receiveQualityDebug": 0,
      "atexHazlocPowerLimit": 4,
      "regionCode": 0,
      "customFrequencies": [
        3652500,
        3655000,
        3657500,
        3660000,
        3662500,
        3665000,
        3667500,
        3670000,
        3672500,
        3675000,
        3677500,
        3680000,
        3682500,
        3685000,
        3687500,
        3690000,
        3692500,
        3695000,
        3697500
      ]
    },
    "smRadioConfig": {
      "powerUpMode": 0,
      "apSelection": 0,
      "frequencyScanList": [
        3652500,
        3655000,
        3657500,
        3660000,
        3662500,
        3665000,
        3667500,
        3670000,
        3672500,
        3675000,
        3677500,
        3680000,
        3682500,
        3685000,
        3687500,
        3690000,
        3692500,
        3695000,
        3697500
      ],
      "bandwidthScanList": [
        50,
        70,
        100,
        150,
        200,
        300,
        400
      ],
      "colorCodeList": [
        {
          "colorCode": 0,
          "priority": 1
        }
      ]
    },
    "smAuthenticationConfig": {
      "authenticationEnforce": 0,
      "phase1": 0,
      "phase2": 2,
      "authOuterId": "anonymous",
      "authPasswordEncrypted": "ba9122c25780be0f289120c382646277",
      "authUsername": "0a-00-3e-41-c3-a1",
      "useRealm": 0,
      "realm": "canopy.net",
      "certificates": [
        "-----BEGIN CERTIFICATE-----'nMIIDSDCCArGgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBwDELMAkGA1UEBhMCVVMx'nETAPBgNVBAgTCElsbGlub2lzMSEwHwYDVQQKExhNb3Rvcm9sYSBTb2x1dGlvbnMs'nIEluYy4xIjAgBgNVBAsTGUNhbm9weSBXaXJlbGVzcyBCcm9hZGJhbmQxIjAgBgNV'nBAMTGUNhbm9weSBBQUEgU2VydmVyIERlbW8gQ0ExMzAxBgkqhkiG9w0BCQEWJHRl'nY2huaWNhbC1zdXBwb3J0QGNhbm9weXdpcmVsZXNzLmNvbTAeFw0wMTAxMDEwMDAw'nMDBaFw00OTEyMzEyMzU5NTlaMIHAMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxs'naW5vaXMxITAfBgNVBAoTGE1vdG9yb2xhIFNvbHV0aW9ucywgSW5jLjEiMCAGA1UE'nCxMZQ2Fub3B5IFdpcmVsZXNzIEJyb2FkYmFuZDEiMCAGA1UEAxMZQ2Fub3B5IEFB'nQSBTZXJ2ZXIgRGVtbyBDQTEzMDEGCSqGSIb3DQEJARYkdGVjaG5pY2FsLXN1cHBv'ncnRAY2Fub3B5d2lyZWxlc3MuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB'ngQDAoLh7N/HKuUcmfkj1EWRxBiJqs1Z6jHhusEjNFNYgpZr2XC77jHq9RDhXOmmE'nCTz0RTHvqLXHduLIuI0aK+gpKD1wmphLfkrJHqn89BOyA3koW36thAto4MWGtb8q'n3o6NwNaCKzG8+vnxWrwj1HmRuZ+McCSsDTYYz/iOqT4+8QIDAQABo1AwTjAMBgNV'nHRMEBTADAQH/MB0GA1UdDgQWBBTrjCIRTYzG8JaP9+Izc7d7LrVpQDAfBgNVHSME'nGDAWgBTrjCIRTYzG8JaP9+Izc7d7LrVpQDANBgkqhkiG9w0BAQUFAAOBgQADYLaM'nZd3mhqzqFHmP4OQCn72nEfIEWkC+P3bNeHMS6bywIleAJkgSYswgtQHOVWgNyIaW'n4l2Z0B149W2fckczh8lZIIWE26H30psumyvKBD10VLwR0pzzldmxXlAcXT8Q2PkI'nlUS+AZWe+ca8Im8rQELPLbY9BpGOo8c1+okc0w=='n-----END CERTIFICATE-----'n",
        "-----BEGIN CERTIFICATE-----'nMIIC2TCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADB2MQswCQYDVQQGEwJVUzER'nMA8GA1UECBMISWxsaW5vaXMxFzAVBgNVBAoTDk1vdG9yb2xhLCBJbmMuMSIwIAYD'nVQQLExlDYW5vcHkgV2lyZWxlc3MgQnJvYWRiYW5kMRcwFQYDVQQDEw5QTVAzMjAg'nRGVtbyBDQTAeFw0wOTA3MDEwNjAwMDBaFw00OTEyMzEyMzU5NTlaMHYxCzAJBgNV'nBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEXMBUGA1UEChMOTW90b3JvbGEsIElu'nYy4xIjAgBgNVBAsTGUNhbm9weSBXaXJlbGVzcyBCcm9hZGJhbmQxFzAVBgNVBAMT'nDlBNUDMyMCBEZW1vIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDinNt5'n6fA20zJqd2l72jBp/mu4K+NZtiXrk8Cpat6SaCNCEeRCoAfIpE5Alkajzq6jU6le'nrNCxJVuoOexjb8K4H9MPSB/LHv9i61JUMYECgiWXxz8sNTEbZnFcWB5hgb5ZPr2g'nbaqr8X9KRoiZ0MSzEzQsEkB79EGTyNvVItH2GQIDAQABo3cwdTAJBgNVHRMEAjAA'nMCgGCWCGSAGG+EIBDQQbFhlJbnNlY3VyZSBEZW1vIENlcnRpZmljYXRlMB0GA1Ud'nDgQWBBTaTn3PsiRFNAhrpYkzvZ7cfPhIdjAfBgNVHSMEGDAWgBTaTn3PsiRFNAhr'npYkzvZ7cfPhIdjANBgkqhkiG9w0BAQUFAAOBgQC7qaY808dmS7WUfKnAoblH2wZE'nHKjg6ivHl0GWeguhyuumhQDlkYoEsDesZa5FhuI6AUHpVnga1eNEGZ6es0/YHrVR'n5ZZkx7svAOEGo5mkc+j/cj1+zqRHCbdznGZU0gnL3Y0MV4oKcyhzGHL3dfwjlwA3'nZzSw0lSJRnC+dK4iBw=='n-----END CERTIFICATE-----'n"
      ]
    },
    "networkConfig": {
      "webAutoUpdate": 0,
      "bridgeEntryTimeout": 25,
      "lanDhcpState": 0,
      "dnsIpState": 1,
      "sessionTimeout": 600,
      "lldpBroadcastEnable": 0,
      "ethernetLinkSpeed": 15,
      "dnsPrimaryMgmtIP": "0.0.0.0",
      "dnsAlternateMgmtIP": "0.0.0.0",
      "dnsMgmtDomainName": "example.com",
      "ftpPort": 21,
      "httpPort": 80,
      "httpsPort": 443,
      "webAccess": 0,
      "snmpStatus": 1,
      "telnetStatus": 1,
      "ftpStatus": 1,
      "tftpStatus": 1,
      "enableSecurityBanner": 0,
      "textSecurityBanner": "example.com",
      "acceptSecurityBanner": 1,
      "packetFilterPppoe": 0,
      "packetFilterSmb": 0,
      "packetFilterSmbIpv6": 0,
      "packetFilterSnmp": 0,
      "packetFilterSnmpIpv6": 0,
      "packetFilterUser1": 0,
      "packetFilterUser2": 0,
      "packetFilterUser3": 0,
      "packetFilterOtherIpv4": 0,
      "packetFilterAllIpv6Others": 0,
      "packetFilterAllIpv4": 0,
      "packetFilterAllIpv6": 0,
      "packetFilterArp": 0,
      "packetFilterAllOthers": 0,
      "packetFilterBootpClient": 0,
      "packetFilterBootpClientIpv6": 0,
      "packetFilterBootpServer": 0,
      "packetFilterBootpServerIpv6": 0,
      "packetFilterMulticastIpv4": 0,
      "packetFilterMulticastIpv6": 0,
      "packetFilterDirection": 0,
      "lanIp": "169.254.1.1",
      "lanMask": "255.255.0.0",
      "lanGateway": "169.254.0.0",
      "diffServ": {
        "1": 0,
        "2": 0,
        "3": 0,
        "4": 4,
        "5": 4,
        "6": 4,
        "7": 4,
        "8": 0,
        "9": 0,
        "10": 0,
        "11": 0,
        "12": 4,
        "13": 4,
        "14": 4,
        "15": 4,
        "16": 0,
        "17": 0,
        "18": 0,
        "19": 0,
        "20": 4,
        "21": 4,
        "22": 4,
        "23": 4,
        "24": 0,
        "25": 0,
        "26": 0,
        "27": 0,
        "28": 4,
        "29": 4,
        "30": 4,
        "31": 4,
        "32": 0,
        "33": 0,
        "34": 0,
        "35": 0,
        "36": 4,
        "37": 4,
        "38": 4,
        "39": 4,
        "40": 0,
        "41": 0,
        "42": 0,
        "43": 0,
        "44": 4,
        "45": 4,
        "46": 4,
        "47": 4,
        "49": 0,
        "50": 0,
        "51": 0,
        "52": 4,
        "53": 4,
        "54": 4,
        "55": 4,
        "57": 0,
        "58": 0,
        "59": 0,
        "60": 4,
        "61": 4,
        "62": 4,
        "63": 4
      },
      "portFiltering": []
    },
    "location": {
      "siteInfoViewable": 1,
      "siteName": "No Site Name",
      "siteContact": "No Site Contact",
      "siteLocation": "No Site Location",
      "latitude": "+0.000000",
      "longitude": "+0.000000",
      "height": 0
    },
    "pppoeConfig": {
      "pppoeCtlPriority": 0
    },
    "snmpConfig": {
      "snmpMibPerm": 1,
      "commStringRW": "Canopy",
      "commStringROnly": "Canopyro",
      "snmpv3EngineId": "800000a1030a003e41c3a1",
      "snmpv3SecLvl": 0,
      "snmpv3AuthProt": 0,
      "snmpv3PrivProt": 0,
      "roUserName": "Canopyro",
      "roAuthPasswordEncrypted": "c56cd33e08dfd4e777b8c1759300090a",
      "roPrivPasswordEncrypted": "4707d0d082fc4f9055d2d456ac74993cd445815b998dadd32d87cecf6eda8db7",
      "rwUserEnable": 0,
      "rwUserName": "Canopy",
      "rwAuthPasswordEncrypted": "0931a4cd1c23f47e08b43aebfdf3784c",
      "rwPrivPasswordEncrypted": "2c6e48b411b2cb1b99103b22986cf88b",
      "snmpv3TrapEnable": 0,
      "snmpv2cEnable": 1,
      "trapDomainNameAppend": 0,
      "snmpPort": 161,
      "snmpTrapPort": 162,
      "snmpIpAccessFilter": [
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        },
        {
          "address": "0.0.0.0",
          "netmask": 0
        }
      ],
      "snmpTrapAddresses": [
        "0.0.0.0",
        "0.0.0.0",
        "0.0.0.0",
        "0.0.0.0",
        "0.0.0.0",
        "0.0.0.0",
        "0.0.0.0",
        "0.0.0.0",
        "0.0.0.0",
        "0.0.0.0"
      ]
    },
    "rfSecurityConfig": {
      "encryptionConfig": 0
    },
    "smSpectrumAnalysisConfig": {
      "spectrumAnalysisOnBoot": 0
    },
    "smNatNetworkConfig": {
      "naptPublicIP": "0.0.0.0",
      "naptPublicSubnetMask": "255.255.255.0",
      "naptPublicGatewayIP": "0.0.0.0",
      "naptRFPublicIP": "0.0.0.0",
      "naptRFPublicSubnetMask": "255.255.255.0",
      "naptRFPublicGateway": "0.0.0.0",
      "naptEnable": 0,
      "arpCacheTimeout": 20,
      "tcpGarbageCollectTmout": 120,
      "udpGarbageCollectTmout": 4,
      "natTslTableSize": 2048,
      "dhcpServerEnable": 1,
      "dhcpServerLeaseTime": 30,
      "dhcpIPStart": "169.254.1.2",
      "dnsAutomatic": 1,
      "preferredDNSIP": "0.0.0.0",
      "alternateDNSIP": "0.0.0.0",
      "natDNSProxyEnable": 0,
      "dmzIP": "169.254.1.52",
      "dmzEnable": 0,
      "dhcpNumIPsToLease": 50,
      "rfDhcpState": 0,
      "natConnectionType": 1,
      "wanPingReplyEnable": 0,
      "naptRemoteManage": 0,
      "portMapping": []
    },
    "qosConfig": {
      "prioritizeTcpAck": 1,
      "largeVCQ": 0,
      "sustainedUplinkDataRate": 10000,
      "sustainedDownlinkDataRate": 10000,
      "uplinkBurstAllocation": 2500000,
      "downlinkBurstAllocation": 2500000,
      "maxUplinkDataRate": 0,
      "maxDownlinkDataRate": 0
    },
    "gpsConfig": {},
    "syslogConfig": {
      "syslogMinLevelApPreferred": 1,
      "syslogMinLevel": 6
    },
    "networkSecurityConfig": {
      "ipAccessFilterEnabled": 0,
      "ipAccessFilter": [
        {
          "address": "0.0.0.0",
          "netmask": 32
        },
        {
          "address": "0.0.0.0",
          "netmask": 32
        },
        {
          "address": "0.0.0.0",
          "netmask": 32
        }
      ]
    },
    "smVlanConfig": {
      "ingressVID": 1,
      "ingressVIDPriority": 0,
      "ingressVIDPriorityMode": 0,
      "providerVIDPriority": 0,
      "providerVIDPriorityMode": 0,
      "allowVIDAccess": 0,
      "portVids": [
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        },
        {
          "macAddress": "00-00-00-00-00-00",
          "vid": 1
        }
      ]
    },
    "smPppoeConfig": {
      "pppoeEnable": 0,
      "pppoeAuthenticationType": 0,
      "pppoeAccessConcentrator": "",
      "pppoeServiceName": "",
      "pppoeUserName": "",
      "pppoePassword": "",
      "pppoeTCPMSSClampEnable": 0,
      "pppoeMTUOverrideEnable": 0,
      "pppoeMTUOverrideValue": 1492,
      "pppoeTimerType": 0,
      "pppoeTimeoutPeriod": 30
    },
    "smNetworkSecurityConfig": {
      "ethAccessEnable": 1
    },
    "vlanConfig": {
      "vlanAcceptQinQFrames": 0,
      "providerVID": 1,
      "vlanPortType": 0,
      "dynamicLearning": 1,
      "managementVID": 1,
      "managementVIDPriority": 0,
      "managementVIDPriorityMode": 0,
      "agingTimeout": 25,
      "frameType": 0,
      "priorityPrecedence": 0,
      "vlanMembership": [],
      "vlanRemark": {}
    }
  }
}

这是我正在运行的

            // register converter
            serializer.RegisterConverters(new[] { new DynamicJsonConverter() });
            dynamic obj = serializer.Deserialize(result, typeof(object));

            obj.userParameters.authenticationConfig.accounts[0].password = "testing";

写入动态JSON对象

我能够重现你的问题,通过包括你从上一篇文章中使用的序列化器。我知道问题出在哪里了:

这个序列化器是只读的,因为类DynamicJsonObject没有实现TrySetMember方法,因此它默认为DynamicObject中的基方法。因此,它不支持"设置"值。但这是很容易补救的。您所要做的就是将以下方法添加到DynamicJsonConverter.cs文件中的DynamicJsonObject类中:

public override bool TrySetMember(SetMemberBinder binder, object value)
{
    _dictionary[binder.Name] = value;
    return true;
}

修改后,我验证了这解决了问题,并且您将能够按照示例设置任何值。

我重现了你的问题,我没有任何例外。问题可能出在json序列化器上。尝试使用Newtonsoft。Json(它是最常用的nuget包,性能非常高),并使用以下代码:

  dynamic test = JsonConvert.DeserializeObject(@"{
  'cfgFileString': 'Canopy configuration file',
  'deviceType': '3.6GHz MIMO OFDM - Subscriber Module',
  'cfgUtcTimestamp': '2011-01-01T00:01:59Z',
  'cfgFileVersion': '1.0',
  'srcMacAddress': '0a-00-3e-41-c3-a1',
  'swVersion': 'CANOPY 14.2 (Build 30)  SM-DES',
  'userParameters': {
                'smSyncConfig': {
                    'timingPulseGated': 1
                },
    'smSyslogConfig': {
                    'syslogServerApPreferred': 1,
      'syslogSMXmitControl': 0
    },
    'smQosConfig': {
                    'lowPriorityUplinkCIR': 0,
      'lowPriorityDownlinkCIR': 0,
      'highPriorityChannel': 0,
      'bCastMIR': 0,
      'bCastMIRUnits': 0
    },
    'authenticationConfig': {
                    'whispWebUserAccessMode': 0,
      'allowRejectThenLocal': 0,
      'authenticationKeyEncrypted': '37107535bd95272afceb980bdb2379cd9340f71d22f07b0bb988bd8741cf3fdbf2b7da94b7481a4df0b5ed1fc2f8d7b4',
      'authKeyOption': 0,
      'accounts': [
        {
          'userName': 'admin',
          'level': 3,
          'readOnly': false,
          'password': ''
        },
        {
          'userName': 'root',
          'level': 3,
          'readOnly': false,
          'password': ''
        }
      ]
    },
    'smNetworkConfig': {
      'networkAccess': 0,
      'enable8023link': 1
    },
    'radioConfig': {
      'installationColorCode': 1,
      'antennaGain': 0,
      'factoryResetOnDefaultPlug': 0,
      'receiveQualityDebug': 0,
      'atexHazlocPowerLimit': 4,
      'regionCode': 0,
      'customFrequencies': [
        3652500,
        3655000,
        3657500,
        3660000,
        3662500,
        3665000,
        3667500,
        3670000,
        3672500,
        3675000,
        3677500,
        3680000,
        3682500,
        3685000,
        3687500,
        3690000,
        3692500,
        3695000,
        3697500
      ]
    },
    'smRadioConfig': {
      'powerUpMode': 0,
      'apSelection': 0,
      'frequencyScanList': [
        3652500,
        3655000,
        3657500,
        3660000,
        3662500,
        3665000,
        3667500,
        3670000,
        3672500,
        3675000,
        3677500,
        3680000,
        3682500,
        3685000,
        3687500,
        3690000,
        3692500,
        3695000,
        3697500
      ],
      'bandwidthScanList': [
        50,
        70,
        100,
        150,
        200,
        300,
        400
      ],
      'colorCodeList': [
        {
          'colorCode': 0,
          'priority': 1
        }
      ]
    },
    'smAuthenticationConfig': {
      'authenticationEnforce': 0,
      'phase1': 0,
      'phase2': 2,
      'authOuterId': 'anonymous',
      'authPasswordEncrypted': 'ba9122c25780be0f289120c382646277',
      'authUsername': '0a-00-3e-41-c3-a1',
      'useRealm': 0,
      'realm': 'canopy.net',
      'certificates': [
        '-----BEGIN CERTIFICATE-----'nMIIDSDCCArGgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBwDELMAkGA1UEBhMCVVMx'nETAPBgNVBAgTCElsbGlub2lzMSEwHwYDVQQKExhNb3Rvcm9sYSBTb2x1dGlvbnMs'nIEluYy4xIjAgBgNVBAsTGUNhbm9weSBXaXJlbGVzcyBCcm9hZGJhbmQxIjAgBgNV'nBAMTGUNhbm9weSBBQUEgU2VydmVyIERlbW8gQ0ExMzAxBgkqhkiG9w0BCQEWJHRl'nY2huaWNhbC1zdXBwb3J0QGNhbm9weXdpcmVsZXNzLmNvbTAeFw0wMTAxMDEwMDAw'nMDBaFw00OTEyMzEyMzU5NTlaMIHAMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxs'naW5vaXMxITAfBgNVBAoTGE1vdG9yb2xhIFNvbHV0aW9ucywgSW5jLjEiMCAGA1UE'nCxMZQ2Fub3B5IFdpcmVsZXNzIEJyb2FkYmFuZDEiMCAGA1UEAxMZQ2Fub3B5IEFB'nQSBTZXJ2ZXIgRGVtbyBDQTEzMDEGCSqGSIb3DQEJARYkdGVjaG5pY2FsLXN1cHBv'ncnRAY2Fub3B5d2lyZWxlc3MuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB'ngQDAoLh7N/HKuUcmfkj1EWRxBiJqs1Z6jHhusEjNFNYgpZr2XC77jHq9RDhXOmmE'nCTz0RTHvqLXHduLIuI0aK+gpKD1wmphLfkrJHqn89BOyA3koW36thAto4MWGtb8q'n3o6NwNaCKzG8+vnxWrwj1HmRuZ+McCSsDTYYz/iOqT4+8QIDAQABo1AwTjAMBgNV'nHRMEBTADAQH/MB0GA1UdDgQWBBTrjCIRTYzG8JaP9+Izc7d7LrVpQDAfBgNVHSME'nGDAWgBTrjCIRTYzG8JaP9+Izc7d7LrVpQDANBgkqhkiG9w0BAQUFAAOBgQADYLaM'nZd3mhqzqFHmP4OQCn72nEfIEWkC+P3bNeHMS6bywIleAJkgSYswgtQHOVWgNyIaW'n4l2Z0B149W2fckczh8lZIIWE26H30psumyvKBD10VLwR0pzzldmxXlAcXT8Q2PkI'nlUS+AZWe+ca8Im8rQELPLbY9BpGOo8c1+okc0w=='n-----END CERTIFICATE-----'n',
        '-----BEGIN CERTIFICATE-----'nMIIC2TCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADB2MQswCQYDVQQGEwJVUzER'nMA8GA1UECBMISWxsaW5vaXMxFzAVBgNVBAoTDk1vdG9yb2xhLCBJbmMuMSIwIAYD'nVQQLExlDYW5vcHkgV2lyZWxlc3MgQnJvYWRiYW5kMRcwFQYDVQQDEw5QTVAzMjAg'nRGVtbyBDQTAeFw0wOTA3MDEwNjAwMDBaFw00OTEyMzEyMzU5NTlaMHYxCzAJBgNV'nBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEXMBUGA1UEChMOTW90b3JvbGEsIElu'nYy4xIjAgBgNVBAsTGUNhbm9weSBXaXJlbGVzcyBCcm9hZGJhbmQxFzAVBgNVBAMT'nDlBNUDMyMCBEZW1vIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDinNt5'n6fA20zJqd2l72jBp/mu4K+NZtiXrk8Cpat6SaCNCEeRCoAfIpE5Alkajzq6jU6le'nrNCxJVuoOexjb8K4H9MPSB/LHv9i61JUMYECgiWXxz8sNTEbZnFcWB5hgb5ZPr2g'nbaqr8X9KRoiZ0MSzEzQsEkB79EGTyNvVItH2GQIDAQABo3cwdTAJBgNVHRMEAjAA'nMCgGCWCGSAGG+EIBDQQbFhlJbnNlY3VyZSBEZW1vIENlcnRpZmljYXRlMB0GA1Ud'nDgQWBBTaTn3PsiRFNAhrpYkzvZ7cfPhIdjAfBgNVHSMEGDAWgBTaTn3PsiRFNAhr'npYkzvZ7cfPhIdjANBgkqhkiG9w0BAQUFAAOBgQC7qaY808dmS7WUfKnAoblH2wZE'nHKjg6ivHl0GWeguhyuumhQDlkYoEsDesZa5FhuI6AUHpVnga1eNEGZ6es0/YHrVR'n5ZZkx7svAOEGo5mkc+j/cj1+zqRHCbdznGZU0gnL3Y0MV4oKcyhzGHL3dfwjlwA3'nZzSw0lSJRnC+dK4iBw=='n-----END CERTIFICATE-----'n'
      ]
    },
    'networkConfig': {
      'webAutoUpdate': 0,
      'bridgeEntryTimeout': 25,
      'lanDhcpState': 0,
      'dnsIpState': 1,
      'sessionTimeout': 600,
      'lldpBroadcastEnable': 0,
      'ethernetLinkSpeed': 15,
      'dnsPrimaryMgmtIP': '0.0.0.0',
      'dnsAlternateMgmtIP': '0.0.0.0',
      'dnsMgmtDomainName': 'example.com',
      'ftpPort': 21,
      'httpPort': 80,
      'httpsPort': 443,
      'webAccess': 0,
      'snmpStatus': 1,
      'telnetStatus': 1,
      'ftpStatus': 1,
      'tftpStatus': 1,
      'enableSecurityBanner': 0,
      'textSecurityBanner': 'example.com',
      'acceptSecurityBanner': 1,
      'packetFilterPppoe': 0,
      'packetFilterSmb': 0,
      'packetFilterSmbIpv6': 0,
      'packetFilterSnmp': 0,
      'packetFilterSnmpIpv6': 0,
      'packetFilterUser1': 0,
      'packetFilterUser2': 0,
      'packetFilterUser3': 0,
      'packetFilterOtherIpv4': 0,
      'packetFilterAllIpv6Others': 0,
      'packetFilterAllIpv4': 0,
      'packetFilterAllIpv6': 0,
      'packetFilterArp': 0,
      'packetFilterAllOthers': 0,
      'packetFilterBootpClient': 0,
      'packetFilterBootpClientIpv6': 0,
      'packetFilterBootpServer': 0,
      'packetFilterBootpServerIpv6': 0,
      'packetFilterMulticastIpv4': 0,
      'packetFilterMulticastIpv6': 0,
      'packetFilterDirection': 0,
      'lanIp': '169.254.1.1',
      'lanMask': '255.255.0.0',
      'lanGateway': '169.254.0.0',
      'diffServ': {
        '1': 0,
        '2': 0,
        '3': 0,
        '4': 4,
        '5': 4,
        '6': 4,
        '7': 4,
        '8': 0,
        '9': 0,
        '10': 0,
        '11': 0,
        '12': 4,
        '13': 4,
        '14': 4,
        '15': 4,
        '16': 0,
        '17': 0,
        '18': 0,
        '19': 0,
        '20': 4,
        '21': 4,
        '22': 4,
        '23': 4,
        '24': 0,
        '25': 0,
        '26': 0,
        '27': 0,
        '28': 4,
        '29': 4,
        '30': 4,
        '31': 4,
        '32': 0,
        '33': 0,
        '34': 0,
        '35': 0,
        '36': 4,
        '37': 4,
        '38': 4,
        '39': 4,
        '40': 0,
        '41': 0,
        '42': 0,
        '43': 0,
        '44': 4,
        '45': 4,
        '46': 4,
        '47': 4,
        '49': 0,
        '50': 0,
        '51': 0,
        '52': 4,
        '53': 4,
        '54': 4,
        '55': 4,
        '57': 0,
        '58': 0,
        '59': 0,
        '60': 4,
        '61': 4,
        '62': 4,
        '63': 4
      },
      'portFiltering': []
    },
    'location': {
      'siteInfoViewable': 1,
      'siteName': 'No Site Name',
      'siteContact': 'No Site Contact',
      'siteLocation': 'No Site Location',
      'latitude': '+0.000000',
      'longitude': '+0.000000',
      'height': 0
    },
    'pppoeConfig': {
      'pppoeCtlPriority': 0
    },
    'snmpConfig': {
      'snmpMibPerm': 1,
      'commStringRW': 'Canopy',
      'commStringROnly': 'Canopyro',
      'snmpv3EngineId': '800000a1030a003e41c3a1',
      'snmpv3SecLvl': 0,
      'snmpv3AuthProt': 0,
      'snmpv3PrivProt': 0,
      'roUserName': 'Canopyro',
      'roAuthPasswordEncrypted': 'c56cd33e08dfd4e777b8c1759300090a',
      'roPrivPasswordEncrypted': '4707d0d082fc4f9055d2d456ac74993cd445815b998dadd32d87cecf6eda8db7',
      'rwUserEnable': 0,
      'rwUserName': 'Canopy',
      'rwAuthPasswordEncrypted': '0931a4cd1c23f47e08b43aebfdf3784c',
      'rwPrivPasswordEncrypted': '2c6e48b411b2cb1b99103b22986cf88b',
      'snmpv3TrapEnable': 0,
      'snmpv2cEnable': 1,
      'trapDomainNameAppend': 0,
      'snmpPort': 161,
      'snmpTrapPort': 162,
      'snmpIpAccessFilter': [
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        },
        {
          'address': '0.0.0.0',
          'netmask': 0
        }
      ],
      'snmpTrapAddresses': [
        '0.0.0.0',
        '0.0.0.0',
        '0.0.0.0',
        '0.0.0.0',
        '0.0.0.0',
        '0.0.0.0',
        '0.0.0.0',
        '0.0.0.0',
        '0.0.0.0',
        '0.0.0.0'
      ]
    },
    'rfSecurityConfig': {
      'encryptionConfig': 0
    },
    'smSpectrumAnalysisConfig': {
      'spectrumAnalysisOnBoot': 0
    },
    'smNatNetworkConfig': {
      'naptPublicIP': '0.0.0.0',
      'naptPublicSubnetMask': '255.255.255.0',
      'naptPublicGatewayIP': '0.0.0.0',
      'naptRFPublicIP': '0.0.0.0',
      'naptRFPublicSubnetMask': '255.255.255.0',
      'naptRFPublicGateway': '0.0.0.0',
      'naptEnable': 0,
      'arpCacheTimeout': 20,
      'tcpGarbageCollectTmout': 120,
      'udpGarbageCollectTmout': 4,
      'natTslTableSize': 2048,
      'dhcpServerEnable': 1,
      'dhcpServerLeaseTime': 30,
      'dhcpIPStart': '169.254.1.2',
      'dnsAutomatic': 1,
      'preferredDNSIP': '0.0.0.0',
      'alternateDNSIP': '0.0.0.0',
      'natDNSProxyEnable': 0,
      'dmzIP': '169.254.1.52',
      'dmzEnable': 0,
      'dhcpNumIPsToLease': 50,
      'rfDhcpState': 0,
      'natConnectionType': 1,
      'wanPingReplyEnable': 0,
      'naptRemoteManage': 0,
      'portMapping': []
    },
    'qosConfig': {
      'prioritizeTcpAck': 1,
      'largeVCQ': 0,
      'sustainedUplinkDataRate': 10000,
      'sustainedDownlinkDataRate': 10000,
      'uplinkBurstAllocation': 2500000,
      'downlinkBurstAllocation': 2500000,
      'maxUplinkDataRate': 0,
      'maxDownlinkDataRate': 0
    },
    'gpsConfig': {},
    'syslogConfig': {
      'syslogMinLevelApPreferred': 1,
      'syslogMinLevel': 6
    },
    'networkSecurityConfig': {
      'ipAccessFilterEnabled': 0,
      'ipAccessFilter': [
        {
          'address': '0.0.0.0',
          'netmask': 32
        },
        {
          'address': '0.0.0.0',
          'netmask': 32
        },
        {
          'address': '0.0.0.0',
          'netmask': 32
        }
      ]
    },
    'smVlanConfig': {
      'ingressVID': 1,
      'ingressVIDPriority': 0,
      'ingressVIDPriorityMode': 0,
      'providerVIDPriority': 0,
      'providerVIDPriorityMode': 0,
      'allowVIDAccess': 0,
      'portVids': [
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        },
        {
          'macAddress': '00-00-00-00-00-00',
          'vid': 1
        }
      ]
    },
    'smPppoeConfig': {
      'pppoeEnable': 0,
      'pppoeAuthenticationType': 0,
      'pppoeAccessConcentrator': '',
      'pppoeServiceName': '',
      'pppoeUserName': '',
      'pppoePassword': '',
      'pppoeTCPMSSClampEnable': 0,
      'pppoeMTUOverrideEnable': 0,
      'pppoeMTUOverrideValue': 1492,
      'pppoeTimerType': 0,
      'pppoeTimeoutPeriod': 30
    },
    'smNetworkSecurityConfig': {
      'ethAccessEnable': 1
    },
    'vlanConfig': {
      'vlanAcceptQinQFrames': 0,
      'providerVID': 1,
      'vlanPortType': 0,
      'dynamicLearning': 1,
      'managementVID': 1,
      'managementVIDPriority': 0,
      'managementVIDPriorityMode': 0,
      'agingTimeout': 25,
      'frameType': 0,
      'priorityPrecedence': 0,
      'vlanMembership': [],
      'vlanRemark': {}
    }
  }
}");
test.userParameters.authenticationConfig.accounts[0].password = "testx";
string wat = test.userParameters.authenticationConfig.accounts[0].password;
Console.WriteLine(wat);

我唯一改变的是"to The",所以我不必逃避它们。也许这解决了你的问题,但在json中,它们是差不多的。

如果您还有问题,我无能为力。