skip to Main Content

Hi every one it is possible to convert json to debatable without doing loop

{
    "ipAddress":    "10.203.10.162",
    "portNo":   45462,
    "protocol": "HTTP",
    "macAddress":   "98:df:82:86:a4:27",
    "channelID":    1,
    "dateTime": "2023-01-11T14:57:24+04:00",
    "activePostCount":  1,
    "eventType":    "AccessControllerEvent",
    "eventState":   "active",
    "eventDescription": "Access Controller Event",
    "AccessControllerEvent":    {
        "deviceName":   "Access Controller",
        "majorEventType":   5,
        "subEventType": 75,
        "name": "ahmad",
        "cardReaderKind":   1,
        "cardReaderNo": 1,
        "verifyNo": 159,
        "employeeNoString": "1",
        "serialNo": 868,
        "userType": "normal",
        "currentVerifyMode":    "cardOrFaceOrFp",
        "currentEvent": false,
        "frontSerialNo":    867,
        "attendanceStatus": "breakOut",
        "label":    "Break Out",
        "statusValue":  0,
        "mask": "unknown",
        "helmet":   "unknown",
        "picturesNumber":   1,
        "purePwdVerifyEnable":  true
    }
}

I tried the following code and it return error.

DataTable dt = JsonConvert.DeserializeObject(json);

2

Answers


  1. I suggest looking at uses of map: map documentation.
    Under the hood, this of course is doing a for loop of a kind.

    Perhaps you are trying to avoid the ‘traditional’ for loop, for this i use :

    Object.Keys(yourJsonObect).foreach((key) => {
        const someDataFromkey = yourJsonObect[key];
    });
    

    I hope that helps.

    Login or Signup to reply.
  2. You have to flatten your JObject and only after this you can deserialize it to DataTable

    var jo=JObject.Parse(json);
    jo.Merge(jo["AccessControllerEvent"]);
    jo.Remove("AccessControllerEvent");
    
    DataTable dt = new JArray(jo).ToObject<DataTable>();
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search