我想将我的Json对象转换为自定义字符串以保存到数据库

时间:2019-09-02 12:17:10

标签: c# json

我正在C#工作,我有一个Json对象,我必须将其保存到我的SQL数据库中。我的Json

{
  "2019-02-01": {
     "val1": 1,
     "val2": 0.7,
     "val3": 0.3
    },
  "2019-02-02": {
     "val1": 4,
     "val2": 0.5,
     "val3": 0.9
    },
  "2019-02-03": {
     "val1": 5,
     "val2": 0.1,
     "val3": 0.7
    }
}

但是我需要Json看起来像这样:

{
 {
  "Date"  : "2019-02-01",
  "val1": 2,
  "val2": 0.76388500000000004,
  "val3": 0.87279499999999999
 },
 {
  "Date"  : "2019-02-02",
  "val1": 3,
  "val2": 0.6,
  "val3": 0.9
 },
 {
  "Date"  : "2019-02-03",
  "val1": 4,
  "val2": 0.7,
  "val3": 0.8
 }
}

为了使我的代码循环通过jArray并将其保存到我的数据库中。

我还没有真正尝试过任何事情,因为我无法说出我想在google中做的事情,C#仍然很新。希望有人能帮助我。

解决方案:

 List<JObject> JObjectList = new List<JObject>();
    foreach (var property in parseJson)
    {
     List<object> map_JsonChild = new List<object>();
     JObject jobj = new JObject();
     jobj.Add("Date", property.Key);

     foreach (var item in property.Value)
     {
      jobj.Add(((Newtonsoft.Json.Linq.JProperty)item).Name, ((Newtonsoft.Json.Linq.JProperty)item).Value);
     }
    JObjectList.Add(jobj);
    }
    string json = JsonConvert.SerializeObject(JObjectList);

1 个答案:

答案 0 :(得分:1)

您应该创建一个与数据库结构匹配的类。例如具有属性Date,Val1等的类。使用下面的代码将json转换为具有您创建的类类型的新对象。

Mycustomclassname oMycustomclassname = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);

然后,您可以通过查询或通过遍历创建的与您的对象匹配的实体来将对象发布到数据库中。