1
class Program {
static void Main(string[] args)
{
    //This is your input json string
    var inputJson = @"{
                  'datamapItems': [
                               {
                                  'paramName': 'VE8321C',
                                  'datamapKey': {
                                               'module': 1,
                                               'id': 1391
                                  },
                                  'min': '0',
                                  'max': '40',
                                  'default': 222,
                                  'rateHz': 0,
                                  'timeoutMs': 0,
                                  'dataType': 'uint16'
                                }
                             ]
                       }";

        clsJSON result = JsonConvert.DeserializeObject<clsJSON>(inputJson); 
    }
}
public class clsJSON
{
      public Datamap datamap;
}
public class Datamap
{
    [JsonExtensionData]
    public Dictionary<string, JToken> DatamapFields = new Dictionary<string, JToken>();
    public List<DatamapItem> DatamapItems;
}
public class DatamapItem
{
    [JsonExtensionData]
    public Dictionary<string, JToken> DatamapItems = new Dictionary<string, JToken>();
    public DatamapKey DatamapKey;
}
public class DatamapKey
{
    [JsonExtensionData]
    public Dictionary<string, JToken> DatamapKeys = new     Dictionary<string, JToken>();
}

I have read JSON data into classes using a given class structure as shown above. Now I want to insert read data into database. clsJSON result = JsonConvert.DeserializeObject(inputJson); this line read all the data from json.

Table Matrix for insert:

db_table_name   json_table_name db_column_name  json_column_name
datamapItems    tblECISOCode    code_name   paramName
datamapKey          tblECISOCode    producer_module module
datamapItems    tblECISOCode    ec_iso_code_id  id
datamapItems    tblECISOCode    minimum         min
datamapItems    tblECISOCode    maximum         max
datamapItems    tblECISOCode    NULL            rateHz

Below is the json template

{
    "datamap": {
        "__comment__dataMapElements__": "",
        "version_cfg_data": "0",
        "version_json_syntax": "0",
        "fnd_chains_input_file": "Configurator",
        "datamapItems": [{
            "paramName": "tblECISOCode@code_name",
            "datamapKey": {
                "module": "tblECISOCode@producer_module,
                "id": "tblECISOCode@ec_iso_code_id"
            },
            "min": "tblECISOCode@minimum",
            "max": "tblECISOCode@maximum",
            "default": 0,
            "rateHz": "tblECISOCode@broadcast_frequency_rate_id->FK(tblDataType@data_type)",
            "dataType": "tblECISOCode@data_type_id->FK(tblDataType@data_type)",
            "internalUnit": "tblECISOCode@internal_unit_id->FK(tblInternalUnit@internal_unit)",
            "displayUnit": "tblECISOCode@display_unit_id->FK(tblInternalUnit@internal_unit)",
            "GuiName": "tblECISOCode@description",
            "application": "tblECISOCode@application_id->FK(tblApplicationEnable@application)",
            "accessRole": "access_role_id->FK(tblRole@role)"
        },      
        "__comment__json_format__": "If tblECISOCode@is_cylinder_code is true, then:"       
        {
            "paramName": "tblECISOCode@code_name+1", cat("tblECISOCode@code_name","1"),     test1
            "datamapKey": {
                "module": tblECISOCode@producer_module[1],
                "id": tblECISOCode@ec_iso_code_id
            },
            "min": tblECISOCode@minimum,
            "max": tblECISOCode@maximum,
            "default": 0,
            "rateHz": tblECISOCode@broadcast_frequency_rate,
            "dataType": "tblECISOCode@data_type_id->FK(tblDataType@data_type)",
            "internalUnit": "tblECISOCode@internal_unit_id->FK(tblInternalUnit@internal_unit)",
            "displayUnit": "tblECISOCode@display_unit_id->FK(tblInternalUnit@internal_unit)",
            "GuiName": "tblECISOCode@description",
            "application": "tblECISOCode@application_id->FK(tblApplicationEnable@application)",
            "accessRole": "access_role_id->FK(tblRole@role)"
        },
        {
            "paramName": "tblECISOCode@code_name+2",test2
            "datamapKey": {
                "module": tblECISOCode@producer_module[2],
                "id": tblECISOCode@ec_iso_code_id
            },
            "min": tblECISOCode@minimum,
            "max": tblECISOCode@maximum,
            "default": 0,
            "rateHz": tblECISOCode@broadcast_frequency_rate,
            "dataType": "tblECISOCode@data_type_id->FK(tblDataType@data_type)",
            "internalUnit": "tblECISOCode@internal_unit_id->FK(tblInternalUnit@internal_unit)",
            "displayUnit": "tblECISOCode@display_unit_id->FK(tblInternalUnit@internal_unit)",
            "GuiName": "tblECISOCode@description",
            "application": "tblECISOCode@application_id->FK(tblApplicationEnable@application)",
            "accessRole": "access_role_id->FK(tblRole@role)"
        },
        ......
        {
            "paramName": "tblECISOCode@code_name+12",test12
            "datamapKey": {
                "module": tblECISOCode@producer_module[12],
                "id": tblECISOCode@ec_iso_code_id
            },
            "min": tblECISOCode@minimum,
            "max": tblECISOCode@maximum,
            "default": 0,
            "rateHz": tblECISOCode@broadcast_frequency_rate,
            "dataType": "tblECISOCode@data_type_id->FK(tblDataType@data_type@data_type)",
            "internalUnit": "tblECISOCode@internal_unit_id->FK(tblInternalUnit@internal_unit)",
            "displayUnit": "tblECISOCode@display_unit_id->FK(tblInternalUnit@internal_unit)",
            "GuiName": "tblECISOCode@description",
            "application": "tblECISOCode@application_id->FK(tblApplicationEnable@application)",
            "accessRole": "access_role_id->FK(tblRole@role)"
        }
}

Above JSON provide a detailed template.

13
  • I want to insert read data into database **using class as data is stored into classes.** what? Commented Oct 16, 2018 at 8:36
  • I recommend researching how to connect to a Database with C# and following a tutorial. A keyword is "EntityFramework", this is used by many people, has good documentation and is relatively newb friendly Commented Oct 16, 2018 at 8:44
  • I Want to store read result into database Commented Oct 16, 2018 at 8:58
  • @SuhelPatel, your json key/value pairs are dynamic, but for sql you need columns that are known, so here i suggest u to insert whole json string in sql as it is and when u read it from sql then deserialize it again into your classes Commented Oct 17, 2018 at 6:24
  • @SuhelPatel, could u plz add this matrix table in your question? Commented Oct 17, 2018 at 6:46

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.