c# - 从 mysql 反序列化 json 字符串并使用 C#.net 存储到结构中
问题描述
public struct bill
{
public int id;
public DateTime docdate;
public ArrayList billDetails;//this will point the billitems structure
};
public struct billItems
{
public int id;
public int item;
public int quantity;
public string name;
public double price;
public ArrayList tax;
public double discount;
};
public ArrayList ReadBill(MySqlConnection connection)
{
ArrayList billList = new ArrayList( );
ArrayList billdetailsList = new ArrayList();
ArrayList details = new ArrayList();
bill bills = new bill();
DataTable dt = new DataTable();
MySqlCommand cmd = new MySqlCommand("SELECT id,DATE_FORMAT(DATE, \"%d-%m-%Y\")docdate,contents FROM bills WHERE progress='Paid'; ", connection);
dt.Load(cmd.ExecuteReader());
for (int i = 0; i < dt.Rows.Count; i++)
{
bills.id = Convert.ToInt32(dt.Rows[i]["id"].ToString());
bills.docdate =Convert.ToDateTime(dt.Rows[i]["docdate"].ToString());
bills.billDetails = new ArrayList();
bills.billDetails = JsonConversion(dt.Rows[i]["contents"].ToString());//function to get deserialization of json string
string str = "";
foreach (var items in bills.billDetails)
{
str= items.ToString();
string replacement = Regex.Replace(str, @"\t|\n|\r", "");//removing the spaces
replacement = Regex.Replace(replacement, " ", "");
details.Add(replacement); //adding to arraylist
}
bills.billDetails = details;// mapping arraylist to structure variable arraylist
//i want to assign this arralist to a structure which contains the details of billitems.
}
private ArrayList JsonConversion(string v)
{
int len;
ArrayList testarray = new ArrayList();
ArrayList resultarraylist = new ArrayList();
testarray= JsonConvert.DeserializeObject<ArrayList>(v);
string array = "";
char[] splitter_securityIDs = { ',' };
foreach (var items in testarray)
{
array = items.ToString();
array = array.Remove(0, 1);
len = array.Length;
array = array.Remove(len - 1, 1);
resultarraylist.AddRange(array.Split(splitter_securityIDs));
return resultarraylist;
}
return null;
}
**我有两个结构法案和法案。bill 有 billdetails 数组列表,它将指向 billitems。我使用 select 查询从 mysql db 获得了一个 json 字符串。我得到了如下的 json 字符串作为记录。
[{"id":46,"item":1,"quantity":10,"name":"GARLIC CHEESE ROLL","price":"50.000","tax":{"name":null," price":50,"quantity":10,"percent":0,"amount":0,"contents":[]},"discount":0},{"id":47,"item":85 ,"数量":1,"名称":"PISTA SCOOPS","价格":"70.000","税":{"名称":null,"价格":70,"数量":1,"百分比" :0,"amount":0,"contents":[]},"discount":0}]
在此处输入图像描述 **这是我在选择查询后得到的数据表。
现在我想拆分这个细节 ("id":46,"item":1,"quantity":10,"name":"GARLIC CHEESE ROLL ","price":"50.000","tax":{" name":null,"price":50,"quantity":10,"percent":0,"amount":0,"contents":[]},"discount":0) 到称为 billitems 的结构。
请帮助我。提前致谢。