建立的类无法生成想要的json格式的问题

ahking 2020-08-03 11:29:46


{
"IPAuthority":1,
"101":{"data1":
[['2019-8-14 8:00:00', 1], ['2019-8-14 8:10:00', 3], ['2019-8-14 8:20:00', 5], ['2019-8-14 8:30:00', 6], ['2019-8-14 8:40:00', 66],['2019-8-14 8:50:00', 8], ['2019-8-14 9:00:00',11], ['2019-8-14 9:20:00', 32], ['2019-8-14 9:30:00', 54]],
"data2":
[['2019-8-14 8:00:00', 1], ['2019-8-14 8:10:00', 3], ['2019-8-14 8:20:00', 5], ['2019-8-14 8:30:00', 6], ['2019-8-14 8:40:00', 66],['2019-8-14 8:50:00', 8], ['2019-8-14 9:00:00',11], ['2019-8-14 9:20:00', 32], ['2019-8-14 9:30:00', 54]]
},
"102":{"data1":
[['2019-8-14 8:00:00', 1], ['2019-8-14 8:10:00', 3], ['2019-8-14 8:20:00', 5], ['2019-8-14 8:30:00', 6], ['2019-8-14 8:40:00', 66],['2019-8-14 8:50:00', 8], ['2019-8-14 9:00:00',11], ['2019-8-14 9:20:00', 32], ['2019-8-14 9:30:00', 54]],
"data2":
[['2019-8-14 8:00:00', 1], ['2019-8-14 8:10:00', 3], ['2019-8-14 8:20:00', 5], ['2019-8-14 8:30:00', 6], ['2019-8-14 8:40:00', 66],['2019-8-14 8:50:00', 8], ['2019-8-14 9:00:00',11], ['2019-8-14 9:20:00', 32], ['2019-8-14 9:30:00', 54]]
}
}



想生成这样的格式,让后类这样设计:


public class Rootobject
{
public int IPAuthority { get; set; }
public _101 data { get; set; }
public _102 data { get; set; }
}

public class data
{
public Dictionary<string, int> data1 { get; set; }
public Dictionary<string, int> data2 { get; set; }
}




结果生成了


{
"IPAuthority":1,
"101":{"data1":
{'2019-8-14 8:00:00', 1, '2019-8-14 8:10:00', 3, '2019-8-14 8:20:00', 5, '2019-8-14 8:30:00', 6, '2019-8-14 8:40:00', 66,'2019-8-14 8:50:00', 8, '2019-8-14 9:00:00',11, '2019-8-14 9:20:00', 32, '2019-8-14 9:30:00', 54},
.......................
}



类该如何修改
...全文
895 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2020-08-03
  • 打赏
  • 举报
回复
错了吧。 应该类似于(我没实测过,只是写个大概)
public class Rootobject
    {
        public int IPAuthority { get; set; }
//101,102作为key
        public Dictionary<string,data> data { get; set; }
    }
 
    public class data
    {
        public List<string> list{get;set;}
    }
ahking 2020-08-03
  • 打赏
  • 举报
回复
还有,类中IPAuthority和Data1的首字母都是大写,生成的json怎么变成首字母小写了
ahking 2020-08-03
  • 打赏
  • 举报
回复
简化类,这样设的

public class Rootobject
    {
        public int IPAuthority { get; set; }
        public   List<List<string>> Data1 { get; set; }  = new List<List<string>>();   
    } 

赋值 ...实例化类

 foreach (DataRow dr in dt.Rows)
            {            

                rootobject.Data1.Add(new List<string> { (dr["rq"].ToString()+ "," +dr["vv"].ToString() });
            }
结果变成这样了 {"ipAuthority":1,"data1":[["2020-07-01,1341"],["2020-07-02,1346"],["2020-07-03,1347"],["2020-07-04,1348"]]} 还是不符合要求
E次奥 2020-08-03
  • 打赏
  • 举报
回复
引用 4 楼 ahking 的回复:
[quote=引用 3 楼 E次奥 的回复:]你这个Json写法就标准的形式;

[['2019-8-14 8:00:00', 1], ['2019-8-14 8:10:00', 3], ['2019-8-14 8:20:00', 5], ['2019-8-14 8:30:00', 6], ['2019-8-14 8:40:00', 66],['2019-8-14 8:50:00', 8], ['2019-8-14 9:00:00',11], ['2019-8-14 9:20:00', 32], ['2019-8-14 9:30:00', 54]]

这段数组里边怎么放了一个个数组?从这个数据来看,应该是:
[{'2019-8-14 8:00:00', 1}, {'2019-8-14 8:10:00', 3}] 这种形式的集合;

具体类结构:

public class Rootobject
{
public int IPAuthority { get; set; }
public Dictionary<string,data> DataArray{ get; set; }
}

public class data
{
public Dictionary<string,List<DataValue>> data1 { get; set; }
public Dictionary<string,List<DataValue>> data2 { get; set; }
}

public class DataValue
{
public string DateTime{get;set;}
public int Age{ get; set;}
}


echarts 的折线,x轴为时间轴的数据格式就是这样的
[["2020-06-18",5366],["2020-06-19",5395],["2020-06-20",5415],["2020-06-21",5420].......][/quote]

恩,那就给上边最后的对象里边在来个List<对象>就行了,这个List只存一个数据;
ahking 2020-08-03
  • 打赏
  • 举报
回复
引用 3 楼 E次奥 的回复:
你这个Json写法就标准的形式; [['2019-8-14 8:00:00', 1], ['2019-8-14 8:10:00', 3], ['2019-8-14 8:20:00', 5], ['2019-8-14 8:30:00', 6], ['2019-8-14 8:40:00', 66],['2019-8-14 8:50:00', 8], ['2019-8-14 9:00:00',11], ['2019-8-14 9:20:00', 32], ['2019-8-14 9:30:00', 54]] 这段数组里边怎么放了一个个数组?从这个数据来看,应该是: [{'2019-8-14 8:00:00', 1}, {'2019-8-14 8:10:00', 3}] 这种形式的集合; 具体类结构:

public class Rootobject
    {
        public int IPAuthority { get; set; }
        public Dictionary<string,data> DataArray{ get; set; }
    }
 
    public class data
    {
        public Dictionary<string,List<DataValue>> data1 { get; set; }
        public Dictionary<string,List<DataValue>> data2 { get; set; }
    }

    public class DataValue
    {
        public string DateTime{get;set;}
        public int Age{ get; set;}
    }
echarts 的折线,x轴为时间轴的数据格式就是这样的 [["2020-06-18",5366],["2020-06-19",5395],["2020-06-20",5415],["2020-06-21",5420].......]
E次奥 2020-08-03
  • 打赏
  • 举报
回复
你这个Json写法就标准的形式;

[['2019-8-14 8:00:00', 1], ['2019-8-14 8:10:00', 3], ['2019-8-14 8:20:00', 5], ['2019-8-14 8:30:00', 6], ['2019-8-14 8:40:00', 66],['2019-8-14 8:50:00', 8], ['2019-8-14 9:00:00',11], ['2019-8-14 9:20:00', 32], ['2019-8-14 9:30:00', 54]]

这段数组里边怎么放了一个个数组?从这个数据来看,应该是:
[{'2019-8-14 8:00:00', 1}, {'2019-8-14 8:10:00', 3}] 这种形式的集合;

具体类结构:

public class Rootobject
{
public int IPAuthority { get; set; }
public Dictionary<string,data> DataArray{ get; set; }
}

public class data
{
public Dictionary<string,List<DataValue>> data1 { get; set; }
public Dictionary<string,List<DataValue>> data2 { get; set; }
}

public class DataValue
{
public string DateTime{get;set;}
public int Age{ get; set;}
}

ahking 2020-08-03
  • 打赏
  • 举报
回复
public class data { public List<string> list{get;set;} } list直接赋值为“'2019-8-14 8:00:00', 1”么?

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧