using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
cs
/// <summary>
///json转inser into
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
static async Task Main(string[] args)
{
string json_rows = @$"
{{""ID"":1111,""NO"":""NO111"",""CREATE_TIME"":""2024-02-03T20:30:34"",""ALNO"":null}}
{{""ID"":11112,""NO"":""NO11222"",""CREATE_TIME"":""2024-02-03T20:30:34"",""ALNO"":null}}
{{""ID"":11113,""NO"":""NO11222"",""CREATE_TIME"":""2024-02-03T20:30:34"",""ALNO"":null}}
";
string[] arr= json_rows.Split('\n');
StringBuilder totsqlSb = new StringBuilder();
foreach (string json in arr)
{
StringBuilder sqlSb = new StringBuilder();
if (json.Length <= 10) continue;
JObject jsonObj = JObject.Parse(json);
sqlSb.Append("insert into table_name2 (");
string columnStr = "";
foreach (var property in jsonObj.Properties())
{
columnStr += $"{property.Name},";
}
columnStr = columnStr.TrimEnd(',');
sqlSb.Append(columnStr);
sqlSb.Append(") ");
sqlSb.Append(" values (");
// -- values ---
string valStr = "";
foreach (var property in jsonObj.Properties())
{
valStr += $"{GetValueString(property.Value)},";
}
valStr = valStr.TrimEnd(',');
sqlSb.Append(valStr);
sqlSb.Append(");\r\n ");
Console.WriteLine(sqlSb.ToString());
totsqlSb.Append(sqlSb);
}
// 指定要写入的文件路径和文件名
string filePath = "d:\\sql.txt";
// 创建StreamWriter对象并打开文件进行写入操作
using (StreamWriter sw = new StreamWriter(filePath))
{
// 写入数据到文本文件中
sw.WriteLine(totsqlSb);
}
//foreach (var property in jsonObj.Properties())
//{
// //Console.WriteLine($"Key: {property.Name}, Value: {property.Value}");
// Console.WriteLine($"Key: {property.Name}, Value: {GetValueString(property.Value)}");
//}
Console.ReadKey();
}
static string GetValueString(JToken token)
{
switch (token.Type)
{
case JTokenType.String:
return $"'{token.ToString().Replace("'", "''")}'";
case JTokenType.Integer:
case JTokenType.Float:
case JTokenType.Boolean:
return token.ToString();
case JTokenType.Date:
return $"to_date('{token.ToString()}','yyyy/MM/dd hh24:mi:ss')";// string.Format("{0:yyyy-MM-dd HH:mm:ss}", token.ToString()) ;
default:
return "null";
}
}