我有一个名为29-6-19.json的json文件“ [{“ 1_2.jpg”:{“ aaa”:“”,“ bbb”:“ sinu”,“ Reg”:“”,“ Email”:“ “,” Tel_1“:” 0129-241484“,” Tel_2“:” 123456789“,” Url“:”“,” Degree“:” RCT,BK“,” Add“:”“,” Pincode“:”“ }},{“ 2_4.jpg”:{“名称”:“”,“代码”:“ 408250”,“注册”:“”,“电子邮件”:“”,“电话”:“”,“网址” :“”,“ Degree”:“”,“ Add”:“”,“ Pincode”:“”}},}}]]“
-我想将其拆分并以aaa =“”,bbb =“ sinu”的形式保存到数据库,并且也这样“ Degree”:“ RCT,BK”值具有','以及如何拆分和保存...
我没有这个 var strjson = File.ReadAllText(path); 已解析的JObject = JObject.Parse(strjson); 但是在解析其显示错误时
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的JSON文件内容,它似乎格式不正确,有多余的逗号和未闭合的大括号。首先,您需要确保您的JSON文件格式正确。正确的格式应该如下所示:
[
{
"1_2.jpg": {
"aaa": "",
"bbb": "sinu",
"Reg": "",
"Email": "",
"Tel_1": "0129-241484",
"Tel_2": "123456789",
"Url": "",
"Degree": "RCT,BK",
"Add": "",
"Pincode": ""
}
},
{
"2_4.jpg": {
"名称": "",
"代码": "408250",
"注册": "",
"电子邮件": "",
"电话": "",
"网址": "",
"Degree": "",
"Add": "",
"Pincode": ""
}
}
]
一旦您的JSON文件格式正确,您可以使用C#代码来读取并解析这个文件,然后将数据保存到数据库中。如果您使用的是阿里云的RDS(关系型数据库服务)或其他支持SQL的数据库,以下是一个简单的示例,说明如何进行操作:
安装NuGet包: 确保您的项目中已经安装了Newtonsoft.Json
,这是处理JSON的一个流行库。
读取并解析JSON:
using Newtonsoft.Json;
using System.IO;
string path = @"路径\29-6-19.json";
string strJson = File.ReadAllText(path);
JArray jsonArray = JArray.Parse(strJson); // 使用JArray因为顶层是一个数组
这里假设您使用ADO.NET连接到数据库,且数据库表结构与JSON中的键相对应。如果您的"Degree"字段可能包含逗号分隔的值,并且您希望在数据库中分别存储这些值,可以进一步处理。
using System.Data.SqlClient; // 或其他数据库对应的命名空间
string connectionString = "您的数据库连接字符串";
foreach (JToken item in jsonArray)
{
foreach (JProperty prop in item.Children<JProperty>())
{
JObject details = (JObject)prop.Value;
string aaa = details["aaa"].ToString();
string bbb = details["bbb"].ToString();
string degree = details["Degree"].ToString(); // 假设要处理逗号分隔的Degree
// 处理Degree,如果有逗号分隔,拆分为列表
List<string> degrees = degree.Split(',').ToList();
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// 假设有一个存储过程SaveDetails接受这些参数
SqlCommand command = new SqlCommand("SaveDetails", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@aaa", aaa);
command.Parameters.AddWithValue("@bbb", bbb);
// 对于Degree,如果需要分开存储,可能需要多次调用存储过程或使用批量插入
foreach (var deg in degrees)
{
command.Parameters["@Degree"].Value = deg;
command.ExecuteNonQuery();
}
// 其他字段类似添加...
connection.Close();
}
}
}
请注意,上述代码仅为示例,实际应用时您需要根据自己的数据库表结构、字段类型以及是否允许在单个字段中存储多个值(如"Degree"字段)来调整。如果"Degree"字段在数据库中需要拆分存储为多行,您可能需要设计一个更复杂的逻辑或者直接在数据库层面处理这些数据。