【问题标题】:Custom array formatting with JSON?使用 JSON 自定义数组格式?
【发布时间】:2021-08-12 08:33:59
【问题描述】:

所以,我有一个 ruby​​ 脚本可以将 RPG Maker XP 数据文件转储为 JSON,并且运行良好。我使用 JSON gem 的 pretty_generate 方法将数据解析为 JSON,但我遇到了地图数据的问题。由于它是一个大型 3D 数组,(其中包含三个数组的数组,每个数组包含多个数组)pretty_generate 将其作为一个大列溢出。为了便于阅读,我更喜欢将数组格式化为大块。在保持 pretty_generates 格式的同时,我将如何去做呢?理想情况下,我只希望它也适用于一个特定的数组,我该怎么做?

长格式

"elements": [
   [
      [
         636,
         636,
         636,
         636,
         636,
       ], 
       [
         ...  
  ],
  [
     [
        0,
        0,
        0,
        0,
        0,
        ...  

Long format

块格式

"elements":
[
 [[636,636,636,636,...],
  [636,636,636,636,...],
  ...]],
 [[0,0,0,0,...],
  [0,0,0,0,...],
  ...]],
 [[0,0,0,0,...],
  [0,0,0,0,...],
  ...]],
]

Block format

【问题讨论】:

  • 当然,您可以编写自己的 JSON 序列化程序。让它功能齐全并不容易,但如果你只需要处理数字和数字数组,那也不会那么糟糕。
  • 我可以,但这样做不会很有趣或不实用。在最坏的情况下,我猜我可以将最低级别的数组转换为字符串,然后再返回以实现我正在寻找的东西?

标签: arrays json ruby


【解决方案1】:

JSON 用于数据交换;漂亮的打印机是为人们准备的。我不会花很多时间来更改序列化程序。相反,请关注您希望如何将反序列化的数据显示给,然后仔细考虑向人显示原始数组或 JSON 数据是否有意义。

作为一个单独的例子,Kernel#pp 做了显示数组的查找工作。考虑:

array = 
  [
    [
      [
        636,
        636,
        636,
        636,
        636,
      ]
    ]
  ]

pp array
#=> [[[636, 636, 636, 636, 636]]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 2019-07-05
    • 2021-10-18
    • 2017-06-28
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多