是否有(Unix)shell脚本以人类可读的形式格式化JSON?
基本上,我希望它改变以下内容:
{ "foo": "lorem", "bar": "ipsum" }
Run Code Online (Sandbox Code Playgroud)
...进入这样的事情:
{
"foo": "lorem",
"bar": "ipsum"
}
Run Code Online (Sandbox Code Playgroud) 如何以易于阅读(针对人类读者)格式显示JSON?我主要是寻找缩进和空白,甚至可能是颜色/字体样式等.
我有一个JSON文件是一个混乱,我想漂亮 - 在python中最简单的方法是什么?我知道PrettyPrint有一个"对象",我认为它可以是一个文件,但我不知道如何传入文件 - 只是使用文件名不起作用.
所以我在这里寻找的是像PHP的print_r函数.这样我就可以通过查看相关对象的状态来调试我的脚本.
python debugging introspection pretty-print python-datamodel
我希望Ruby on Rails中的JSON输出"漂亮"或格式良好.
现在,我打电话to_json
,我的JSON全部在一条线上.有时,如果JSON输出流中存在问题,则很难看到.
有没有办法配置或方法使我的JSON在Rails中"漂亮"或格式良好?
我正在构建一个PHP脚本,将JSON数据提供给另一个脚本.我的脚本将数据构建为一个大的关联数组,然后使用输出数据json_encode
.这是一个示例脚本:
$data = array('a' => 'apple', 'b' => 'banana', 'c' => 'catnip');
header('Content-type: text/javascript');
echo json_encode($data);
Run Code Online (Sandbox Code Playgroud)
上面的代码产生以下输出:
{"a":"apple","b":"banana","c":"catnip"}
Run Code Online (Sandbox Code Playgroud)
如果您有少量数据,这很好,但我更喜欢这些内容:
{
"a": "apple",
"b": "banana",
"c": "catnip"
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有丑陋黑客的情况下在PHP中执行此操作?好像Facebook的某个人想出来了.
我有一些Java代码,其中SQL语句编写为Java字符串(请不要使用OR/M flamewars,嵌入式SQL就是这样 - 不是我的决定).
为了便于维护,我在几行代码中将SQL语句在语义上分解为几个连接的字符串.所以,而不是像:
String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";
Run Code Online (Sandbox Code Playgroud)
我有类似的东西:
String query =
"SELECT FOO, BAR, BAZ" +
" FROM ABC " +
" WHERE BAR > 4 ";
Run Code Online (Sandbox Code Playgroud)
这种风格使SQL更易于阅读和维护(恕我直言),特别是对于较大的查询.例如,我可以将我的编辑器置于"覆盖"模式,并相当容易地就地修改文本.
请注意,此问题超出了SQL的特定示例.任何使用任何垂直格式编写的代码,特别是表格结构,都容易被漂亮的打印机破坏.
现在,一些项目成员使用Eclipse编辑器,语义格式在格式化整个源文件时经常被破坏.
有没有办法指示Eclipse在格式化方面忽略某些源代码行?
我正在寻找像切换Eclipse格式化程序的特殊注释.理想情况下,这样的评论可以配置为我们选择的任何内容,其他格式化程序也可以编程为尊重它:
// STOP-ECLIPSE-FORMATTING
String query =
"SELECT FOO, BAR, BAZ" +
" FROM ABC " +
" WHERE BAR > 4 ";
// START-ECLIPSE-FORMATTING
Run Code Online (Sandbox Code Playgroud)
显然,一个"解决方案"是让我们的团队成员对Jalopy或JIndent这样的外部格式化程序进行标准化,但这不是这个问题的原因(也不是我对这个项目的决定):我正在寻找一种方法在临时的基础上避免使用Eclipse格式化程序.
理想情况下,解决方案将允许我插入Eclipse格式化程序的指令,而无需团队成员使用Eclipse进行任何IDE重新配置(除了可能选择格式化程序无关的命令注释:STOP-ECLIPSE-FORMATTING
→ STOP-FORMATTING
).
我有一个包含XML的Java字符串,没有换行符或缩进.我想把它变成一个格式很好的XML的字符串.我该怎么做呢?
String unformattedXml = "<tag><nested>hello</nested></tag>";
String formattedXml = new [UnknownClass]().format(unformattedXml);
Run Code Online (Sandbox Code Playgroud)
注意:我的输入是一个字符串.我的输出是一个字符串.
(基本)模拟结果:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<tag>
<nested>hello</nested>
</tag>
</root>
Run Code Online (Sandbox Code Playgroud) Please take note of the updates at the end of this post.
Update: I have created a public project on GitHub for this library!
I would like to have a single template that once and for all takes care of pretty-printing all STL containers via operator<<
. In pseudo code, I'm looking for something like this:
template<container C, class T, String delim = ", ", String open = "[", String close = "]">
std::ostream & operator<<(std::ostream & o, const C<T> …
Run Code Online (Sandbox Code Playgroud)