gpt4 book ai didi

c# - 在 C# 中从 SQL 表结果格式化 JSON

转载 作者:行者123 更新时间:2023-12-02 15:35:36 24 4
gpt4 key购买 nike

我正在尝试以下列方式在 C# 中格式化 JSON。假设我有下表


col1 col2 col3 col4<br/>
comA 1 2 3<br/>
comB 4 5 6<br/>
comC 7 8 9<br/>

我希望我的 JSON 输出是这样的


[{
name: 'comA',
data: [1,2,3]<br/>
}, {
name: 'comB',
data: [4,5,6]
}, {
name: 'comC',
data: [7,8,9]
}]

我有以下代码



<pre><code>public class ChartLoc
{
public string Category { get; set; }
public string Data{ get; set; }
}

public void myFunc(){
using (SqlConnection con = new SqlConnection(ConnectionString)
{
con.Open();
using (SqlCommand cmd = new SqlCommand("select * from table", con))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{

List<String> _Category = new List<String>();
List<String> _Data = new List<String>();

while (reader.Read())
{


_Data.Add(reader["col2"].ToString() + ',' + reader["col3"].ToString() + ',' + reader["col4"].ToString());

if (reader["store"] != DBNull.Value) _Category.Add(reader["col1"].ToString());
}
JavaScriptSerializer jss = new JavaScriptSerializer();
cl.Category = jss.Serialize(_Category);
cl.Data = jss.Serialize(_Data);
}
}
}
}
</code></pre>

虽然这个输出会给我

cl.Category = ['comA','comB','comC']cl.Data = ['1,2,3','4,5,6','7,8,9']

最佳答案

如果你想输出像 [{ name: 'comA', data: [1,2,3] }, { name: 'comB', data: [4,5,6] }, { name: 'comC', data: [7,8,9] }],您需要以不同方式序列化您的对象。由于您需要 JSON 中的数字列表而不是字符串,因此您需要在类定义中将数字表示为 List。这样的事情应该有效:

[Serializable]
public class ChartLoc
{
public string Category { get; set; }
public List<int> Data { get; set; }
}

public string myFunc()
{
string jsonString = "";
using (SqlConnection con = new SqlConnection(ConnectionString)
{
con.Open();
using (SqlCommand cmd = new SqlCommand("select * from table", con))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
List<ChartLoc> _ChartLoc = new List<ChartLoc>();

while (reader.Read())
{
ChartLoc chart = new ChartLoc();
chart.Data.Add(int.Parse(reader["col2"].ToString()));
chart.Data.Add(int.Parse(reader["col3"].ToString()));
chart.Data.Add(int.Parse(reader["col4"].ToString()));

if (reader["store"] != DBNull.Value)
chart.Category = reader["col1"].ToString();
_ChartLoc.Add(chart);
}
JavaScriptSerializer jss = new JavaScriptSerializer();
jsonString = jss.Serialize(_ChartLoc);
}
}
}
return jsonString;
}

关于c# - 在 C# 中从 SQL 表结果格式化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18067780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com