我使用下面的代码(found on this webpage)和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);
}
}
这是预期结果:
{
"name": "mkyong",
"age": 35,
"position": "Founder",
"salary": 10000,
"skills": [
"java",
"python",
"shell"
]
}
不幸的是,“漂亮的打印”根本不起作用,我在一行中得到了所有内容:
{\"name\":\"mkyong\",\"age\":35,\"position\":\"Founder\",\"salary\":10000,\"skills\":[\"java\",\"python\",\"shell\"]}"
知道我做错了什么吗
3条答案
按热度按时间lvmkulzt1#
您必须解析JSON,然后对解析后的JSON调用
gson.toJson()
。当前的代码只是告诉GSON将一些
String
转换为JSON,结果是相同的String
。xmq68pz92#
nickb让我度过了美好的一天!:-)
正确的代码必须如下所示:
输出量:
mlmc2os53#
我知道我迟到了。但是
JsonParser.parse()
从com. google. code. gson v2.8.6中被弃用请改用静态方法
parseString(String json)
:导入语句:
import com.google.gson.*;
如果输入源类型与string不同,也可以使用静态方法,如
parseReader(JsonReader reader)
或parseReader(java.io.Reader reader)
。