我有两个openstruct数组的表单:
<OpenStruct id=0, name="EMGEE CABLES AND COMMUNICATIONS LIMITED", group=3>
<OpenStruct id=1, name="ELECTRICAL TECHNOLOGY PARK OF INDIA", group=2>
<OpenStruct id=2, name="PRISM BUILDCON PRIVATE LIMITED", group=2>
....和
<OpenStruct source=79, target=3, value=5>
<OpenStruct source=80, target=0, value=5>
<OpenStruct source=81, target=0, value=5>
....我的目标是将这些数据转换为json格式,并以以下形式将结果保存到文件中:
{
nodes:
[
{id=0, name="EMGEE CABLES AND COMMUNICATIONS LIMITED", group=3},
{id=0, name="ELECTRICAL TECHNOLOGY PARK OF INDIA", group=3},
{id=0, name="PRISM BUILDCON PRIVATE LIMITED", group=3}
]
links:
[
{source=79, target=3, value=5},
{source=80, target=0, value=5},
{source=81, target=0, value=5}
]
}发布于 2017-03-20 13:29:56
我想说的是,您将根据自己的喜好在结构中覆盖.to_json方法。
或者,OpenStruct上的H方法可以做你想做的事情。因此,.to_h.to_json也应该实现您的目标。
如果您的问题是如何实现预期的输出,您可以这样做:
the_json = {
nodes: your_first_array_of_structs.map(&:to_h),
links: your_second_array_of_structs.map(&:to_h)
}.to_json
File.open('path/to/file.json, 'w') { |file| file.write(the_json) }https://stackoverflow.com/questions/42902379
复制相似问题