I have a JSON string with Multiple JSON Object. I would like to know how to deserialize Json string to DataSet.
I have deserialize JSON string to DataTable. It works fine but I would like to know how to convert multiple JSON object to dataset
Below is sample JSON:
{
"Name": "Jamal",
"Age": "42",
"City": "Mumbai",
"EducationalInfo": [{
"Degree": "BE",
"University": "Cristian Universiy"
}, {
"Degree": "ME",
"University": "Texas University"
}],
"LoanInfo": [{
"LoanType": "Car Loan",
"Amount": "1000000"
}, {
"LoanType": "Personal",
"Amount": "200000"
}]
}
Expected Output is:
Name, Age, City is one datatable
Degree & University is one datatable
LoanType & Amount is one datatable
Please suggest how to covert this.
you have to convert personal fields to Array, before deserializing to DataSet
using Newtonsoft.Json;
var jObj = JObject.Parse(json);
var propsToRemove = jObj.Properties()
.Where(p => p.Value.Type != JTokenType.Array)
.ToArray();
jObj["PersonalInfo"] = new JArray(new JObject(propsToRemove));
for (var i = 0; i < propsToRemove.Count(); i++)
propsToRemove[i].Remove();
DataSet ds = jObj.ToObject<DataSet>();
test
var tableNames = string.Join(", ", ds.Tables.OfType<DataTable>()
.Select(dt =>dt.TableName ));
test result
EducationalInfo, LoanInfo, PersonalInfo