Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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_Parsing - Fatal编程技术网

如何在Java中解析JSON文本

如何在Java中解析JSON文本,java,json,parsing,Java,Json,Parsing,我有以下JSON文本。如何解析它以获得响应代码、响应、结果、显示名称、可用性严重性、资源ID等 { “响应代码”:“4000”, “答复”: { “结果”: [ { “显示名称”:“备份服务器”, “可用性严重性”:“5”, “资源ID”:“10002239110”, “类型”:“太阳”, “短消息”:“清除” } ] ,“uri”:“/json/ListAlarms” } } 输出 "4000" "Backup Server" "5" "10002239110" "SUN" "Clear" "

我有以下JSON文本。如何解析它以获得响应代码、响应、结果、显示名称、可用性严重性、资源ID等

{ “响应代码”:“4000”, “答复”: { “结果”: [ { “显示名称”:“备份服务器”, “可用性严重性”:“5”, “资源ID”:“10002239110”, “类型”:“太阳”, “短消息”:“清除” } ] ,“uri”:“/json/ListAlarms” } }

输出

"4000"
"Backup Server"
"5"
"10002239110"
"SUN"
"Clear"
"/json/ListAlarms"
如果json具有固定结构,另一种方法是构建对象来表示json结构,并使用
jackson
将json转换为java对象,如

class JsonObj {

    @JsonProperty("response-code")
    private long responseCode;

    private ResponseObj response;

    public long getResponseCode() {
        return responseCode;
    }

    public void setResponseCode(long responseCode) {
        this.responseCode = responseCode;
    }

    public ResponseObj getResponse() {
        return response;
    }

    public void setResponse(ResponseObj response) {
        this.response = response;
    }
}

class ResponseObj {

    private ArrayList<ResultObj> result;
    private String uri;

    public ArrayList<ResultObj> getResult() {
        return result;
    }

    public void setResult(ArrayList<ResultObj> result) {
        this.result = result;
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String uri) {
        this.uri = uri;
    }
}

class ResultObj {

    @JsonProperty("DISPLAYNAME")
    private String displayName;

    @JsonProperty("TYPE")
    private String type;

    @JsonProperty("AVAILABILITYSEVERITY")
    private int availabilitySeverity;

    @JsonProperty("RESOURCEID")
    private String resourceId;

    @JsonProperty("SHORTMESSAGE")
    private String shortMessage;

    public String getDisplayName() {
        return displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public int getAvailabilitySeverity() {
        return availabilitySeverity;
    }

    public void setAvailabilitySeverity(int availabilitySeverity) {
        this.availabilitySeverity = availabilitySeverity;
    }

    public String getResourceId() {
        return resourceId;
    }

    public void setResourceId(String resourceId) {
        this.resourceId = resourceId;
    }

    public String getShortMessage() {
        return shortMessage;
    }

    public void setShortMessage(String shortMessage) {
        this.shortMessage = shortMessage;
    }
}

输出是相同的…

JSON.parse?????在您最喜欢的搜索引擎中键入“parse JSON with Java”。JSON结果不固定(数据来自服务器),我需要打开所有JSON变量output@TanintecFiruzzadeh“不固定”是什么意思?这是一个获取“响应代码”字段的示例,您可以从报警服务器获取所有其他字段的JSON数据(报警服务器生成的JSON数据),我需要更多的输出例外响应代码我需要下面的输出响应代码=4000 DISPLAYNAME=备份服务器可用性严重性=5 RESOURCEID:10002239110 TYPE=SUN SHORTMESSAGE=Clear正如我所说,要获取其他值,这非常简单
class JsonObj {

    @JsonProperty("response-code")
    private long responseCode;

    private ResponseObj response;

    public long getResponseCode() {
        return responseCode;
    }

    public void setResponseCode(long responseCode) {
        this.responseCode = responseCode;
    }

    public ResponseObj getResponse() {
        return response;
    }

    public void setResponse(ResponseObj response) {
        this.response = response;
    }
}

class ResponseObj {

    private ArrayList<ResultObj> result;
    private String uri;

    public ArrayList<ResultObj> getResult() {
        return result;
    }

    public void setResult(ArrayList<ResultObj> result) {
        this.result = result;
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String uri) {
        this.uri = uri;
    }
}

class ResultObj {

    @JsonProperty("DISPLAYNAME")
    private String displayName;

    @JsonProperty("TYPE")
    private String type;

    @JsonProperty("AVAILABILITYSEVERITY")
    private int availabilitySeverity;

    @JsonProperty("RESOURCEID")
    private String resourceId;

    @JsonProperty("SHORTMESSAGE")
    private String shortMessage;

    public String getDisplayName() {
        return displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public int getAvailabilitySeverity() {
        return availabilitySeverity;
    }

    public void setAvailabilitySeverity(int availabilitySeverity) {
        this.availabilitySeverity = availabilitySeverity;
    }

    public String getResourceId() {
        return resourceId;
    }

    public void setResourceId(String resourceId) {
        this.resourceId = resourceId;
    }

    public String getShortMessage() {
        return shortMessage;
    }

    public void setShortMessage(String shortMessage) {
        this.shortMessage = shortMessage;
    }
}
JsonObj jsonObj = mapper.readValue(json, JsonObj.class);
System.out.println(jsonObj.getResponseCode());

ResponseObj response = jsonObj.getResponse();
ResultObj firstResult = response.getResult().get(0);
System.out.println(firstResult.getDisplayName());
System.out.println(firstResult.getAvailabilitySeverity());
System.out.println(firstResult.getResourceId());
System.out.println(firstResult.getType());
System.out.println(firstResult.getShortMessage());
System.out.println(response.getUri());