Java的JSON字符串整洁/格式化程序
我有一个有效的 JSON 字符串,我想对其进行整理/格式化,以便每个属性/值对都在自己的行上,等等(它目前在一行上,没有空格/换行符).
I have a valid JSON String that I want to tidy/format such that each property/value pair is on its own line, etc. (it currently is on one line with no spaces/line breaks).
我正在使用 Apache Sling JSONObject
对我的 JSON 对象进行建模并将其转换为字符串,因此如果可以将 Sling JSONObject
设置为输出整洁的字符串(我不认为它可以)那也可以.
I am using the Apache Sling JSONObject
to model my JSON Object and turn it into a String, so if the Sling JSONObject
can be set to output a tidy string (which I do not think it can) that would work too.
如果我需要一个 3rd 方库,我会更喜欢依赖项尽可能少的库(例如 Jackson,它只需要 std JDK 库).
If I need a 3rd party lib I would prefer one with as few dependencies as possibles (such as Jackson which only requires the std JDK libs).
推荐答案
你不需要外部库.
在 Sling 的 JSONObject 中使用内置的漂亮打印机:http://sling.apache.org/apidocs/sling5/org/apache/sling/commons/json/JSONObject.html#toString(int)
Use the built in pretty printer in Sling's JSONObject: http://sling.apache.org/apidocs/sling5/org/apache/sling/commons/json/JSONObject.html#toString(int)
public java.lang.String toString(int indentFactor)抛出 JSONException
public java.lang.String toString(int indentFactor) throws JSONException
制作此 JSONObject 的漂亮打印 JSON 文本.警告:此方法假定数据结构是非循环的.
Make a prettyprinted JSON text of this JSONObject. Warning: This method assumes that the data structure is acyclical.
参数:
indentFactor - 添加到每个级别的空格数的缩进.
indentFactor - The number of spaces to add to each level of indentation.
返回:可打印、可显示、可移植、对象的可传输表示,以 { 开头(左大括号)并以 } 结尾(右大括号).
Returns: a printable, displayable, portable, transmittable representation of the object, beginning with { (left brace) and ending with } (right brace).
抛出:JSONException - 如果对象包含无效数字.
Throws: JSONException - If the object contains an invalid number.
相关文章