ঠিক আছে তাই আমি শেষ পর্যন্ত আমার সমস্যার সমাধান করেছি। আরও ভাল উপায় থাকলে দয়া করে আমাকে জানান :-)
public DataSet getData(string strFoo)
{
string url = "foo";
HttpClient client = new HttpClient();
HttpResponseMessage response;
DataSet dsTable = new DataSet();
try
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
response = client.GetAsync(url).Result;
string responseJSONContent = response.Content.ReadAsStringAsync().Result;
var jsonList = DeSerializeJsonString(responseJSONContent);
dsTable = Foo_ConnectAPI.ExtentsionHelpers.ToDataSet<RootObject>(jsonList);
return dsTable;
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return null;
}
}
public List<RootObject> DeSerializeJsonString(string jsonString)
{
List<RootObject> list = new List<RootObject>();
list = (List<RootObject>)JsonConvert.DeserializeObject<List<RootObject>>(jsonString);
return list;
}
রুটবজেক্টটিতে জেট সেট রয়েছে যা জেএসএনের মান পাবে।
public class RootObject
{
public string EntityID { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
}
উপরের ক্লাসটি তৈরি করার সহজ উপায় হ'ল json2charp ব্যবহার করা যা সে অনুসারে এটি ফর্ম্যাট করবে এবং সঠিক ডেটাটাইপগুলি সরবরাহ করবে।
নীচে
আবার স্ট্যাকওভারফ্লো এর অন্য উত্তর থেকে এটি নেস্টেড জেএসওএন বিবেচনায় নেয় না।
internal static class ExtentsionHelpers
{
public static DataSet ToDataSet<T>(this List<RootObject> list)
{
try
{
Type elementType = typeof(RootObject);
DataSet ds = new DataSet();
DataTable t = new DataTable();
ds.Tables.Add(t);
try
{
foreach (var propInfo in elementType.GetProperties())
{
try
{
Type ColType = Nullable.GetUnderlyingType(propInfo.PropertyType) ?? propInfo.PropertyType;
t.Columns.Add(propInfo.Name, ColType);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
try
{
foreach (RootObject item in list)
{
DataRow row = t.NewRow();
foreach (var propInfo in elementType.GetProperties())
{
row[propInfo.Name] = propInfo.GetValue(item, null) ?? DBNull.Value;
}
t.Rows.Add(row);
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
insert.insertCategories(t);
return ds.
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return null;
}
}
};
তারপরে পরিশেষে JSON- এ ম্যাপযুক্ত কলামগুলির সাথে একটি টেবিলের উপরের ডেটাসেটটি সারণিতে আমি এসকিউএল বাল্ক অনুলিপি এবং নিম্নলিখিত ক্লাসটি ব্যবহার করেছি
public class insert
{
public static string insertCategories(DataTable table)
{
SqlConnection objConnection = new SqlConnection();
objConnection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["foo"].ToString();
try
{
objConnection.Open();
var bulkCopy = new SqlBulkCopy(objConnection.ConnectionString);
bulkCopy.DestinationTableName = "dbo.foo";
bulkCopy.BulkCopyTimeout = 600;
bulkCopy.WriteToServer(table);
return "";
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return "";
}
finally
{
objConnection.Close();
}
}
};
সুতরাং উপরের কাজ করে একটি ওয়েবএপিআই থেকে একটি ডাটাবেসে জেএসএন sertোকানোর জন্য। এটি এমন কিছু যা আমি কাজ করতে পারি। তবে কোনও উপায়েই আমি এটি নিখুঁত হওয়ার প্রত্যাশা করি না। আপনার যদি কোনও উন্নতি হয় তবে দয়া করে এটি আপডেট করুন।