根据这个Json,如何设计类

jason_mf 2018-08-29 06:03:17
{"AAA": {
"bbb": {
"token": "0x818fc6c2ec5986bc6e2cbf00939d905",
"qv": 2022484495.287,
"bv": 725.843,
"last": 3.71e-7,
"pc": -0.0831,
"b": 4.02e-7,
"a": 3.76e-7
},
"cccc": {
"token": "0x8f3470a7388c05ee4e7af3d01d8c722b",
"qv": 1925.279,
"bv": 170.785,
"last": 0.101188,
"pc": -0.0647,
"b": 0.09011077,
"a": 0.102530986
},
"fdfd": {
"token": "0x12b306fa98f4cbb8d4457fdff3a0a0a56",
"qv": 279839.583,
"bv": 117.038,
"last": 0.000401057,
"pc": -0.0448,
"b": 0.000350035,
"a": 0.000438993
},
"erer": {
"token": "0xff3519eeeea3e76f1f699ccce5e23ee0",
"qv": 6849,
"bv": 58.226,
"last": 0.008540967,
"pc": 0.0049,
"b": 0.006,
"a": 0.00849
},

.......

"dfdf": {
"token": "0x5c3bb81d0e1391361b3198d02fe883dff",
"qv": 2974968.754,
"bv": 48.998,
"last": 0.00001715,
"pc": -0.0472,
"b": 1e-9,
"a": 0.0000175
}

}
}




AAA里面有好几十个这样的。
如果是类,就要写很多的属性; 如果是集合 要怎么 序列化?
请教C#代码如何写?
...全文
234 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序员的键盘 2018-08-30
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using Newtonsoft.Json;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, Dictionary<string, Info>> obj = new Dictionary<string, Dictionary<string, Info>>();

Dictionary<string, Info> AAA = new Dictionary<string, Info>();
AAA.Add("bbb", new Info { token = "0x818fc6c2ec5986bc6e2cbf00939d905", qv = 2022484495.287, bv = 725.843, last = 3.71e-7, pc = -0.0831, b = 4.02e-7, a = 3.76e-7 });
AAA.Add("ccc", new Info { token = "0x818fc6c2ec5986bc6e2cbf00939d905", qv = 2022484495.287, bv = 725.843, last = 3.71e-7, pc = -0.0831, b = 4.02e-7, a = 3.76e-7 });

obj.Add("AAA", AAA);
Console.WriteLine(JsonConvert.SerializeObject(obj));
Console.Read();
}
}

public class Info
{
public string token { get; set; }
public double qv { get; set; }
public double bv { get; set; }
public double last { get; set; }
public double pc { get; set; }
public double b { get; set; }
public double a { get; set; }
}
}

  • 打赏
  • 举报
回复
不就是个字典么?
正怒月神 2018-08-30
  • 打赏
  • 举报
回复
引用 1 楼 yenange 的回复:
如果你的属性是固定的, 按下图操作即可:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
public class Rootobject
{
public AAA AAA { get; set; }
}

public class AAA
{
public Bbb bbb { get; set; }
public Cccc cccc { get; set; }
public Fdfd fdfd { get; set; }
public Erer erer { get; set; }
public Dfdf dfdf { get; set; }
}

public class Bbb
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

public class Cccc
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

public class Fdfd
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

public class Erer
{
public string token { get; set; }
public int qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

public class Dfdf
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

}


如果属性个数不固定, 但每个属性的类型一致, 可以设计成 Dictionary :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
public class Rootobject
{
public AAA AAA { get; set; }
}

public class AAA
{
public Dictionary<string,Info> dic { get; set; }
}

public class Info
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}
}
王志威丶 2018-08-30
  • 打赏
  • 举报
回复
这个JSON 好奇怪哦,字段都一样,为什么要分那么多节点呢
吉普赛的歌 2018-08-29
  • 打赏
  • 举报
回复
如果你的属性是固定的, 按下图操作即可:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
public class Rootobject
{
public AAA AAA { get; set; }
}

public class AAA
{
public Bbb bbb { get; set; }
public Cccc cccc { get; set; }
public Fdfd fdfd { get; set; }
public Erer erer { get; set; }
public Dfdf dfdf { get; set; }
}

public class Bbb
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

public class Cccc
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

public class Fdfd
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

public class Erer
{
public string token { get; set; }
public int qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

public class Dfdf
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}

}


如果属性个数不固定, 但每个属性的类型一致, 可以设计成 Dictionary :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
public class Rootobject
{
public AAA AAA { get; set; }
}

public class AAA
{
public Dictionary<string,Info> dic { get; set; }
}

public class Info
{
public string token { get; set; }
public float qv { get; set; }
public float bv { get; set; }
public float last { get; set; }
public float pc { get; set; }
public float b { get; set; }
public float a { get; set; }
}
}

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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