wanghan226 2021-10-10 20:30 采纳率: 0%
浏览 22

c# json 串解析问题

收到接口返回的 json 串:

{"code":0,"msg":"","data":{"sp000998":{"qfqday":[["2021-09-27","5.850","5.610","5.910","5.560","305300.000"],["2021-09-28","5.570","5.710","5.740","5.540","200538.000"],["2021-09-29","5.680","5.640","5.780","5.610","211602.000"],["2021-09-30","5.620","5.710","5.770","5.620","185429.000"],["2021-10-08","5.900","5.850","6.220","5.790","520652.000"]],"qt":{"sz000598":["51","\u5174\u84c9\u73af\u5883","000598","5.85","5.71","5.90","520652","243576","277076","5.84","1278","5.83","652","5.82","1564","5.81","604","5.80","1178","5.85","589","5.86","822","5.87","844","5.88","1146","5.89","877","","20211008161403","0.14","2.45","6.22","5.79","5.85/520652/312552254","520652","31255","1.74","13.01","","6.22","5.79","7.53","174.69","174.69","1.38","6.28","5.14","2.14","998","6.00","12.34","13.45","","","0.36","31255.2254","0.0000","0"," ","GP-A","24.44","0.17","1.70","10.59","4.21","6.22","4.36","4.84","5.41","14.48","2986218750","2986218750","10.45","23.91","2986218750"],"market":["2021-10-10 20:13:01|HK_close_\u5df2\u4f11\u5e02|SH_close_\u5df2\u4f11\u5e02|SZ_close_\u5df2\u4f11\u5e02|US_close_\u5df2\u4f11\u5e02|SQ_close_\u5df2\u4f11\u5e02|DS_close_\u5df2\u4f11\u5e02|ZS_close_\u5df2\u4f11\u5e02|NEWSH_close_\u5df2\u4f11\u5e02|NEWSZ_close_\u5df2\u4f11\u5e02|NEWHK_close_\u5df2\u4f11\u5e02|NEWUS_close_\u5df2\u4f11\u5e02|REPO_close_\u5df2\u4f11\u5e02|UK_close_\u5df2\u4f11\u5e02|KCB_close_\u5df2\u4f11\u5e02|IT_close_\u5df2\u4f11\u5e02|MY_close_\u5df2\u4f11\u5e02|EU_close_\u5df2\u4f11\u5e02|AH_close_\u5df2\u4f11\u5e02|DE_close_\u5df2\u4f11\u5e02|JW_close_\u5df2\u4f11\u5e02|CYB_close_\u5df2\u4f11\u5e02|USA_close_\u5df2\u4f11\u5e02|USB_close_\u5df2\u4f11\u5e02"],"zjlx":["sz000598","0.00","0.00","0.00","0","0.00","0.00","0.00","0","0.00","0.00","0.00","\u5174\u84c9\u73af\u5883","20200701","20200701^0.00^0.00","20200630^0.00^0.00","20200629^0.00^0.00","20200624^0.00^0.00","0.00","0.00","20200701085013"]},"mx_price":{"mx":{"data":[],"timeline":[]},"price":{"data":[]}},"prec":"5.840","version":"17"}}}

其中我只想获得 data 中的 qfqday 部分并解析为实体泛型List
sp000998 是商品编码,每次返回不同的商品信息json.

"data":{"sp000998":{"qfqday":[["2021-09-27","5.850","5.610","5.910","5.560","305300.000"],["2021-09-28","5.570","5.710","5.740","5.540","200538.000"],["2021-09-29","5.680","5.640","5.780","5.610","211602.000"],["2021-09-30","5.620","5.710","5.770","5.620","185429.000"],["2021-10-08","5.900","5.850","6.220","5.790","520652.000"]]

假设创建了实体 product 如何赋值 ?
对应实体属性:日期、早晨价格、中午价格、下午价格、晚上价格、成交额 的 product 实体中。

请教下具体方法:

目前尝试了 JObject jo = JObject.Parse(json 字符串); 获得的大对象杂乱无章,不太明了如何直接获得 data 中的 qfqday 下 各行数据到实体中。

  • 写回答

3条回答 默认 最新

  • wanghan226 2021-10-10 21:54
    关注

    使用了,的确挺方便,但用到这层后就不知道该如何取这个list 了:

    JToken data = jo["data"];

    得到:
    {"sz000598": {
    "hfqday": [
    [
    "2021-09-30",
    "101.095",
    "102.714",
    "103.793",
    "101.095",
    "185429.000"
    ],
    [
    "2021-10-08",
    "106.132",
    "105.232",
    "111.888",
    "104.153",
    "520652.000"
    ]
    ],
    "qt": {
    "sz000598": [
    "51",
    "兴蓉环境",
    "000598",
    "5.85",
    "5.71",
    "5.90",
    "520652",
    "243576",
    "277076",
    "5.84",
    "1278",
    "5.83",
    "652",
    "5.82",
    "1564",
    "5.81",
    "604",
    "5.80",
    "1178",
    "5.85",
    "589",
    "5.86",
    "822",
    "5.87",
    "844",
    "5.88",
    "1146",
    "5.89",
    "877",
    "",
    "20211008161403",
    "0.14",
    "2.45",
    "6.22",
    "5.79",
    "5.85/520652/312552254",
    "520652",
    "31255",
    "1.74",
    "13.01",
    "",
    "6.22",
    "5.79",
    "7.53",
    "174.69",
    "174.69",
    "1.38",
    "6.28",
    "5.14",
    "2.14",
    "998",
    "6.00",
    "12.34",
    "13.45",
    "",
    "",
    "0.36",
    "31255.2254",
    "0.0000",
    "0",
    " ",
    "GP-A",
    "24.44",
    "0.17",
    "1.70",
    "10.59",
    "4.21",
    "6.22",
    "4.36",
    "4.84",
    "5.41",
    "14.48",
    "2986218750",
    "2986218750",
    "10.45",
    "23.91",
    "2986218750"
    ],
    "market": [
    "2021-10-10 21:51:02|HK_close_已休市|SH_close_已休市|SZ_close_已休市|US_close_已休市|SQ_close_已休市|DS_close_已休市|ZS_close_已休市|NEWSH_close_已休市|NEWSZ_close_已休市|NEWHK_close_已休市|NEWUS_close_已休市|REPO_close_已休市|UK_close_已休市|KCB_close_已休市|IT_close_已休市|MY_close_已休市|EU_close_已休市|AH_close_已休市|DE_close_已休市|JW_close_已休市|CYB_close_已休市|USA_close_已休市|USB_close_已休市"
    ],
    "zjlx": [
    "sz000598",
    "0.00",
    "0.00",
    "0.00",
    "0",
    "0.00",
    "0.00",
    "0.00",
    "0",
    "0.00",
    "0.00",
    "0.00",
    "兴蓉环境",
    "20200701",
    "20200701^0.00^0.00",
    "20200630^0.00^0.00",
    "20200629^0.00^0.00",
    "20200624^0.00^0.00",
    "0.00",
    "0.00",
    "20200701085013"
    ]
    },
    "mx_price": {
    "mx": {
    "data": [],
    "timeline": []
    },
    "price": {
    "data": []
    }
    },
    "prec": "101.455",
    "version": "17"
    }}

    就不知道如何取我想要的 qfqday 部分 了。

    评论
  • 吴新恒 2021-10-12 12:03
    关注

    通过楼上方法,是可以取到你想要的值通过[‘’][‘’],但是这种情况,很多时候会因为没有值导致null报错,建议使用实体类或者结构体

    评论
  • bidisty 2021-10-13 15:16
    关注

    jo["data"]["sz000598"]["hfqday"].AsJEnumerable()

    评论

报告相同问题?

问题事件

  • 创建了问题 10月10日

悬赏问题

  • ¥15 Arduino实现音频混响
  • ¥15 cuda.jit加速报错
  • ¥15 Octave 安装工具箱出错 Only Win32 target is supported!
  • ¥15 docker save的不能在另一台设备运行
  • ¥15 Unity Animation Rigging使用问题
  • ¥15 mbedtls握手返回-7200
  • ¥30 c++ http服务器
  • ¥15 express连接mssql,每条额外附加了语句
  • ¥20 IQOO12如何有效ADB方法
  • ¥15 ios如何获取用户的订阅情况