关于 JsonConvert.DeserializeObject使用问题

慢节奏qukq 2021-09-25 15:06:40

原始数据代码 

[2320,{"as":[["3333.13000","3.00237149","1631426997.355729"],["3333.44000","0.60000000","1631426987.037408"],["3333.65000","3.00008757","1631426984.803697"],["3333.94000","5.77090511","1631426980.874159"],["3333.95000","5.92508656","1631426980.892580"],["3334.23000","0.60175812","1631426981.518966"],["3334.33000","2.00000000","1631426984.085511"],["3334.54000","4.49984016","1631426984.181640"],["3334.77000","2.34639610","1631426992.229329"],["3334.87000","0.68400000","1631426994.816490"]],"bs":[["3333.12000","4.49810794","1631426980.864994"],["3332.32000","0.25000000","1631426985.310793"],["3332.20000","3.00005105","1631426984.803947"],["3331.98000","0.37420711","1631426996.770443"],["3331.97000","5.00000000","1631426985.311706"],["3331.74000","10.46675265","1631426984.098778"],["3331.71000","4.49984016","1631426984.182289"],["3331.54000","0.90048438","1631426983.262254"],["3331.00000","7.49981343","1631426984.184341"],["3330.96000","2.34621803","1631426996.331847"]]},"book-10","ETH/USDT"]

我现在需要把这段数据映射一个类里面

我的类是这样写的:

    public class price
    {
        public int num { get; set; }
        public PriceKdata Data { get; set; }
        public string book { get; set; }
        public string Usdt { get; set; }
    }
    public class PriceKdata
    {
        public List<List<double>> @as { get; set; }
        public List<List<double>> bs { get; set; }
    }

使用: data是一个字符串。里面是 原始数据代码  的数据

var dd = JsonConvert.DeserializeObject<price>(data);

运行后提示的错误信息:

Newtonsoft.Json.JsonSerializationException:“Error converting value 2320 to type 'price'. Path '[0]', line 1, position 5.”

这个映射的类应该怎么写?

...全文
422 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2021-09-26
精选
  • 打赏
  • 举报
回复

用 var r = JArray.Parse(text);
干嘛非要在一棵树上吊死

慢节奏qukq 2021-09-26
  • 举报
回复
@xuzuning 哈哈。大佬说的有道理
wspb 2021-09-26
  • 打赏
  • 举报
回复

复制你的json->vs里点击编辑->选择性粘贴->将JSON粘贴为类

慢节奏qukq 2021-09-26
  • 举报
回复
@wspb 不行呀。一样报错
wspb 2021-09-26
  • 举报
回复
@慢节奏qukq 仔细一看你这个原始数据不是个完整的json吧?
慢节奏qukq 2021-09-26
  • 举报
回复
@wspb 在vs里面用这段代码用字符串表示,然后用json可视化工具是可以转换json的
Nick大帅仔 2021-09-25
  • 打赏
  • 举报
回复

你的数据要这么写

[
  {
    "num": 2320,
    "Data": {
      "as": [balabala],
      "bs": [balabala]
    },
    "book": "book-10",
    "Usdt": "ETH/USDT"
  }
]

序列化方法应该用 var dd = JsonConvert.DeserializeObject<price[]>(data);

慢节奏qukq 2021-09-26
  • 举报
回复
@Nick大帅仔 这个数据不是我写的。是网站推送过来的数据。我用正则可以搞定数据。但是公司要求使用json解析所以脑瓜子痛
Nick大帅仔 2021-09-25
  • 打赏
  • 举报
回复

这明显不对啊,你data里的数据应该是price类的,data其中一部分才是 PriceKdata类的

慢节奏qukq 2021-09-26
  • 举报
回复
@Nick大帅仔 嗯。上面拷贝的代码有点问题。我修改了下。有什么方法能解决这个问题吗。大佬

111,130

社区成员

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

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

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