将 jsMap 导出为 json

Export jsMap as json

我想使用 karate.write 将 JsMap(使用 karate.merge 制作)导出为 json 文件。我的问题是文件只有一行:

{"a":1,"b":2}

虽然我期待这样的事情(格式化超过 4 行):

{
  "a":1,
  "b":2
}

我的代码,包含我尝试过的所有转换(导致相同的结果):

  Scenario: merge
    * def foo = { a: 1 }
    * def bar = karate.merge(foo, { b: 2 })
    * match bar == { a: 1, b: 2 }
    * karate.write(bar, 'bar1.json')
    * karate.write(bar, 'bar2.txt')
    * karate.write(karate.toJson(bar), 'bar3.json')
    * karate.write(karate.toJson(bar), 'bar4.txt')
    * string bar = bar
    * karate.write(bar, 'bar5.json')
    * karate.write(bar, 'bar6.txt')
    * karate.write(karate.toJson(bar), 'bar7.json')
    * karate.write(karate.toJson(bar), 'bar8.txt')

实现我想要的结果的正确转换是什么?

这会让你得到你想要的:

* def data = {"a":1,"b":2}
* def file = karate.write(karate.pretty(data), 'test.json')
* print 'saved to:', file

空手道并不能真正被视为 JSON 格式化工具,因此如果需要请考虑 Java 互操作。而karate.write()有一些注意事项,参考: