找回密码
 立即注册

QQ登录

只需一步,快速开始

恒美恒美
金牌服务用户   /  发表于:2024-9-30 13:56  /   查看:546  /  回复:6
20金币
本帖最后由 恒美恒美 于 2024-9-30 14:34 编辑

通过api返回的订单数据是JSON数据, 我用循环命令循环写入数据表, 有一个问题是,有可能一次返回一条数据,  有可能一次返回多条数据, 返回多条数据时是一个列表形式,就可以循环,  但是只返回一条数据时,是json数据,  json数据不能循环, 所以就出错了, 我在服务端命令里加了判断去判断返回的是列表还是json ,但是感觉不太对, 有没有其他方法,或者是把json和列表转换成同一种格式循环写入
  1. {"adjust_fee":"0.00",
  2. "buyer_nick":"h**",
  3. "buyer_open_uid":"AAEFCekzABHD55D7_dBjknvv",
  4. "buyer_rate":"false",
  5. "consign_time":"2024-09-28 15:34:42",
  6. "created":"2024-09-28 14:19:35",
  7. "discount_fee":"90.00","modified":"2024-09-28 15:34:46",
  8. "no_shipping":"false","num":"1","num_iid":"684046548848",
  9. "oaid":"114Mf5xFS1SSiaFDwwNic0V7icrFo37U7rKdA8xFgkzrQaynswYTSGU8knlhvOicpN1uY4Jpuy9",
  10. "pay_time":"2024-09-28 14:19:40",
  11. "payment":"890.00",
  12. "pic_path":"https://img.alicdn.com/bao/uploaded/i2/2456129801/O1CN01ZECmaA2MGunfvcfBj_!!2456129801.jpg",
  13. "post_fee":"0.00",
  14. "price":"1960.00",
  15. "received_payment":"0.00",
  16. "receiver_address":"大**街道**村靴子礁瑞金海产品**公司",
  17. "receiver_city":"大连市",
  18. "receiver_district":"金州区",
  19. "receiver_mobile":"***********",
  20. "receiver_name":"陈**",
  21. "receiver_state":"辽宁省",
  22. "receiver_town":"大李家街道",
  23. "receiver_zip":"000000",
  24. "seller_flag":"0",
  25. "seller_rate":"false",
  26. "service_type":{},
  27. "shipping_type":"express",
  28. "status":"WAIT_BUYER_CONFIRM_GOODS",
  29. "tid":"4060670365019834309",
  30. "total_fee":"1960.00","type":"fixed"}
复制代码
这是返回一条订单的,这种就不能循环,可以直接写入,
  1. [{"adjust_fee":"0.00",
  2. "buyer_nick":"h**",
  3. "buyer_open_uid":"AAEFCekzABHD55D7_dBjknvv",
  4. "buyer_rate":"false",
  5. "consign_time":"2024-09-28 15:34:42",
  6. "created":"2024-09-28 14:19:35",
  7. "discount_fee":"90.00",
  8. "modified":"2024-09-28 15:34:46",
  9. "no_shipping":"false",
  10. "num":"1",
  11. "num_iid":"684046548848",
  12. "oaid":"114Mf5xFS1SSiaFDwwNic0V7icrFo37U7rKdA8xFgkzrQaynswYTSGU8knlhvOicpN1uY4Jpuy9",
  13. "pay_time":"2024-09-28 14:19:40",
  14. "payment":"890.00",
  15. "pic_path":"https://img.alicdn.com/bao/uploaded/i2/2456129801/O1CN01ZECmaA2MGunfvcfBj_!!2456129801.jpg",
  16. "post_fee":"0.00",
  17. "price":"1960.00",
  18. "received_payment":"0.00",
  19. "receiver_address":"大**街道**村靴子礁瑞金海产品**公司","receiver_city":"大连市","receiver_district":"金州区",
  20. "receiver_mobile":"***********",
  21. "receiver_name":"陈**",
  22. "receiver_state":"辽宁省",
  23. "receiver_town":"大李家街道",
  24. "receiver_zip":"000000",
  25. "seller_flag":"0",
  26. "seller_rate":"false",
  27. "service_type":{},
  28. "shipping_type":"express",
  29. "status":"WAIT_BUYER_CONFIRM_GOODS",
  30. "tid":"4060670365019834309",
  31. "total_fee":"1960.00",
  32. "type":"fixed"},
  33. {"adjust_fee":"0.00",
  34. "buyer_nick":"x**",
  35. "buyer_open_uid":"AAHRCekzABHD55D7_dBrMZL9",
  36. "buyer_rate":"false",
  37. "consign_time":"2024-07-17 16:44:17",
  38. "created":"2024-07-16 23:02:05",
  39. "discount_fee":"180.00",
  40. "end_time":"2024-08-03 16:45:54",
  41. "modified":"2024-09-28 14:51:27",
  42. "no_shipping":"false",
  43. "num":"1",
  44. "num_iid":"559222886228",
  45. "oaid":"1IeIUmrodoDroX1icbtlgw51SbiaEkibn7ibVtMRs6rwUW837U6mLvOfVoce3pd2kOoMRzmxiaof",
  46. "pay_time":"2024-07-16 23:19:22",
  47. "payment":"1700.00",
  48. "pic_path":"https://img.alicdn.com/bao/uploaded/i4/2456129801/O1CN01z3fqW82MGuTnkTknc_!!2456129801.jpg",
  49. "post_fee":"0.00",
  50. "price":"3760.00",
  51. "received_payment":"1700.00",
  52. "receiver_address":"三*街道 **大厦****",
  53. "receiver_city":"西安市",
  54. "receiver_district":"未央区",
  55. "receiver_mobile":"***********",
  56. "receiver_name":"王**",
  57. "receiver_phone":{},
  58. "receiver_state":"陕西省",
  59. "receiver_town":"三桥街道",
  60. "receiver_zip":"710016",
  61. "seller_flag":"4",
  62. "seller_rate":"false",
  63. "service_type":{},
  64. "shipping_type":"express",
  65. "status":"TRADE_FINISHED",
  66. "tid":"3970788192097304109",
  67. "total_fee":"3760.00","type":"fixed"}]
复制代码
这是返回多条订单的, 加了一个中括号. 这种需要循环写入

现在不确定每次返回的数据是一条还是多条, 如何能将返回数据不管是多条还是单挑都循环写入, 或者直接写入,


最佳答案

查看完整内容

可以做一个逻辑 if 数组对象是0 就是单条数据 >0 就是多条数据, 就能判断是一条还是多条了 工程v7

6 个回复

正序浏览
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-9-30 16:00:35
7#
感谢各位大佬的支持~
也可以考虑使用left函数去获取一下字符串的第一个字符,如果是{则为对象,如果是[则是数组




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
恒美恒美
金牌服务用户   /  发表于:2024-9-30 15:07:53
6#
VVANVI 发表于 2024-9-30 14:44
可以做一个逻辑  if  数组对象是0  就是单条数据  >0 就是多条数据, 就能判断是一条还是多条了

工程v7  ...

明白了,谢谢大佬
回复 使用道具 举报
VVANVI悬赏达人认证
论坛元老   /  发表于:2024-9-30 14:41:11
4#
本帖最后由 VVANVI 于 2024-9-30 14:42 编辑

拿你的 数据样本做了一个测试, 可以通过反序列化命令     .count方法  获取对象数量  ,然后判断用什么方法写入









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +5 收起 理由
Lay.Li + 5 赞一个!

查看全部评分

回复 使用道具 举报
恒美恒美
金牌服务用户   /  发表于:2024-9-30 14:34:52
3#
VVANVI 发表于 2024-9-30 14:09
具体要看接口返回的数据结构, 如果返回是数组  , 一条和多条都可以循环的!! 最好给出数据示例

大佬,我帖子重新编辑了一下,您再给看看
回复 使用道具 举报
VVANVI悬赏达人认证
论坛元老   /  发表于:2024-9-30 14:09:07
2#
本帖最后由 VVANVI 于 2024-9-30 14:11 编辑

具体要看接口返回的数据结构, 如果返回是数组  , 一条和多条都可以循环的!! 最好给出数据示例
回复 使用道具 举报
最佳答案
最佳答案
VVANVI悬赏达人认证
论坛元老   /  发表于:2024-9-30 13:56:49
来自 5#
本帖最后由 VVANVI 于 2024-9-30 14:47 编辑

可以做一个逻辑  if  数组对象是0  就是单条数据  >0 就是多条数据, 就能判断是一条还是多条了

工程v7  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部