Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将json字符串插入SQL Server 2008数据库_C#_.net_Json_Sql Server 2008 - Fatal编程技术网

C# 将json字符串插入SQL Server 2008数据库

C# 将json字符串插入SQL Server 2008数据库,c#,.net,json,sql-server-2008,C#,.net,Json,Sql Server 2008,我有一个json字符串,比如 {"identifier":7,"name":"xyz"} 这里的标识符和名称是列名。我单独传递表名,表名随列名而变化 我想将转换为insert查询语句 现在我正在做的是: JavaScriptSerializer jss = new JavaScriptSerializer(); var d = jss.Deserialize<dynamic>(format); JavaScriptSerializer jss=new JavaScriptSeri

我有一个json字符串,比如

{"identifier":7,"name":"xyz"}
这里的标识符和名称是列名。我单独传递表名,表名随列名而变化

我想将转换为insert查询语句

现在我正在做的是:

JavaScriptSerializer jss = new JavaScriptSerializer();
var d = jss.Deserialize<dynamic>(format);
JavaScriptSerializer jss=new JavaScriptSerializer();
var d=jss.Deserialize(格式);
它使每个元素的对象具有键和值,但我不知道如何循环

请建议我是否在正确的轨道上,或者是否有任何其他方法可以使用


注意:json结构将是相同的,但字符串可以比我上面提到的示例长或短。

您可以通过下面的示例解析json。一旦在对象中解析了值,就可以将对象直接用于ORM或从stringbuilder创建查询

工作样本

使用系统;
使用Newtonsoft.Json;
公共课程
{
公共静态void Main()
{
var str=“{\'identifier\':7,\'name\':\'xyzstr\'”;
DBModel DBModel=JsonConvert.DeserializeObject(str);
Console.WriteLine(dbModel.identifier);
Console.WriteLine(dbModel.name);
}
}
公共类数据库模型
{
公共int标识符{get;set;}
公共字符串名称{get;set;}
}

对于使用JObject的通用解决方案,您可以遍历键值对

小提琴更新:

var str=“{\'identifier\':7,\'name\':\'xyzstr\'”;
var jsonObject=JsonConvert.DeserializeObject(str);
foreach(jsonObject中的var项)
{
Console.WriteLine(item.Key+“”+item.Value.ToString());
}
Console.ReadLine();

与数据库的关系是什么?这里的标识符和名称是列名。我分别传递表名,表名随列名而变化。Thanx…但问题是json字符串和DBModel将是动态的。寻找更普通的东西
using System;
using Newtonsoft.Json;

public class Program
{
    public static void Main()
    {
        var str ="{\"identifier\":7,\"name\":\"xyzstr\"}";
        DBModel dbModel = JsonConvert.DeserializeObject<DBModel>(str);
        Console.WriteLine(dbModel.identifier);
        Console.WriteLine(dbModel.name);

    }
}

public class DBModel
{
   public int identifier { get; set; }
   public string name { get; set; }


}
var str = "{\"identifier\":7,\"name\":\"xyzstr\"}";
            var jsonObject = JsonConvert.DeserializeObject<JObject>(str);
            foreach (var item in jsonObject)
            {
                Console.WriteLine(item.Key + " " + item.Value.ToString());
            }
            Console.ReadLine();