Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印精美的JSON_Java_Json_Pretty Print - Fatal编程技术网

Java 打印精美的JSON

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;

我用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;
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并序列化它。