我正在使用以下代码(可在此网页上找到)和 Gson 库 (2.8.2) 使用漂亮的打印格式来格式化 JSON 代码。
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonExample {
public static void main(String[] args) {
String jsonData = "{\"name\":\"mkyong\",\"age\":35,\"position\":\"Founder\",\"salary\":10000,\"skills\":[\"java\",\"python\",\"shell\"]}";
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(jsonData);
System.out.println(json);
}
}
Run Code Online (Sandbox Code Playgroud)
这是预期的结果:
{
"name": "mkyong",
"age": 35,
"position": "Founder",
"salary": 10000,
"skills": [
"java",
"python",
"shell"
]
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,“漂亮的打印”根本不起作用,我将所有内容都放在一行中:
{\"name\":\"mkyong\",\"age\":35,\"position\":\"Founder\",\"salary\":10000,\"skills\":[\"java\",\"python\",\"shell\"]}"
Run Code Online (Sandbox Code Playgroud)
任何想法我做错了什么?
nickb 让我很开心!:-)
正确的代码必须如下所示:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParser;
import com.google.gson.JsonElement;
public class GsonExample {
public static void main(String[] args) {
String jsonData = "{\"name\":\"mkyong\",\"age\":35,\"position\":\"Founder\",\"salary\":10000,\"skills\":[\"java\",\"python\",\"shell\"]}";
JsonElement jsonElement = new JsonParser().parse(jsonData);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(jsonElement);
System.out.println(json);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
{
"name": "mkyong",
"age": 35,
"position": "Founder",
"salary": 10000,
"skills": [
"java",
"python",
"shell"
]
}
Run Code Online (Sandbox Code Playgroud)
您必须解析 JSON,然后调用gson.toJson()生成的解析 JSON。
JsonElement jsonElement = new JsonParser().parse(jsonData);
String json = gson.toJson(jsonElement);
Run Code Online (Sandbox Code Playgroud)
您当前的代码只是告诉 GSON 将一些转换String为 JSON,结果是相同的String。
| 归档时间: |
|
| 查看次数: |
7010 次 |
| 最近记录: |