Java 打印精美的JSON
我用java制作了一个JSONObject,并试图使用gson的pretty print函数使该对象在网站上更具可读性,但它一直显示为Java 打印精美的JSON,java,json,pretty-print,Java,Json,Pretty Print,我用java制作了一个JSONObject,并试图使用gson的pretty print函数使该对象在网站上更具可读性,但它一直显示为 {“后门”:“解锁”,“窗口2”:“解锁”,“窗口3”:“解锁”,“窗口1”:“解锁”,“前门”:“解锁”,“系统”:“解除防护”,“灯”:“打开”} 这是到目前为止我使用gson-2.2.4-javadoc.jar、gson.2.2.4-sources.jar和gson.2.2.4jar文件得到的代码 import com.google.gson.Gson;
{“后门”:“解锁”,“窗口2”:“解锁”,“窗口3”:“解锁”,“窗口1”:“解锁”,“前门”:“解锁”,“系统”:“解除防护”,“灯”:“打开”}
这是到目前为止我使用gson-2.2.4-javadoc.jar、gson.2.2.4-sources.jar和gson.2.2.4jar文件得到的代码
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@Get("json")
public String handleGet() {
try {
JSONObject system = new JSONObject();
system.put("System", "Disarmed");
system.put("Front Door", "Unlocked");
system.put("Back Door", "Unlocked");
system.put("Window 1", "Unlocked");
system.put("Window 2", "Unlocked");
system.put("Window 3", "Unlocked");
system.put("Lights", "On");
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println( gson.toJson(system) );
JsonRepresentation jsonRep = new JsonRepresentation(system);
return jsonRep.getText();
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
return null;
}
编辑
在像这样编辑代码之后
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println( gson.toJson(system) );
//JsonRepresentation jsonRep = new JsonRepresentation(system);
String pretty = gson.toJson(system);
return pretty;
//return jsonRep.getText();
} catch (JSONException e) {
e.printStackTrace();
//} catch (IOException e)
{
e.printStackTrace();
}
return null;
}
}
现在它显示为
{
"map": {
"Back Door": "Unlocked",
"Window 2": "Unlocked",
"Window 3": "Unlocked",
"Window 1": "Unlocked",
"Front Door": "Unlocked",
"System": "Disarmed",
"Lights": "On"
}
}
有没有办法将“map”更改为“system”?只需返回打印精美的Gson输出即可
String pretty = gson.toJson(system);
return pretty;
哪个有价值
{
"Lights": "On",
"Front Door": "Unlocked",
"Window 3": "Unlocked",
"Window 2": "Unlocked",
"System": "Disarmed",
"Back Door": "Unlocked",
"Window 1": "Unlocked"
}
谢谢,成功了!但它表现为:;{“地图”:{“后门”:“解锁”,“窗口2”:“解锁”,“窗口3”:“解锁”,“窗口1”:“解锁”,“前门”:“解锁”,“系统”:“解除防护”,“灯光”:“打开”}我可以将“地图”更改为其他内容吗?像“系统”。@user3506728你能在你的问题中添加一个显示你做了什么的编辑吗?@user3506728这就是
JSONObject
中地图的命名方式。如果您不能在那里更改它,那么就无法在JSON中更改它。否则,您将使用GSON中断反序列化。@user3506728抱歉,我使用了错误的JSONObject
类。如果您已经在使用Gson,那么最好创建一个POJO并序列化它。