繁体   English   中英

Java 中的 JSON 名称值对解析

[英]JSON name value pair Parsing in Java

我有以下 JSON 结构,我想将其解析为 Java 对象。 是否有我可以使用的现有库,或者我应该编写自定义代码来解析。 示例 json 结构和 java 类如下。

JSON:

"name": "hierarchy",
"value": "[
  {
    "name": "solutionid",
    "value": "String"
  },
  {
    "name": "groupcode",
    "value": "String"
  },
  {
    "name": "dealhashid",
    "value": "String"
  },
  {
    "name": "keyinfo_customername",
    "value": "String"
  },
  {
    "name": "keyinfo_prequalificationnumber",
    "value": "String"
  },
  {
    "name": "keyinfo_orderactiontype",
    "value": "String"
  }
]"

Java对象:

class Hierarchy {
    String solutionId;
    String groupCode;
    KeyInfo keyInfo;

    public String getSolutionId() {
        return solutionId;
    }

    public void setSolutionId(String solutionId) {
        this.solutionId = solutionId;
    }

    public String getGroupCode() {
        return groupCode;
    }

    public void setGroupCode(String groupCode) {
        this.groupCode = groupCode;
    }

    public KeyInfo getKeyInfo() {
        return keyInfo;
    }

    public void setKeyInfo(KeyInfo keyInfo) {
        this.keyInfo = keyInfo;
    }
}

class KeyInfo {
    String customerName;
    String orderActionType;

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getOrderActionType() {
        return orderActionType;
    }

    public void setOrderActionType(String orderActionType) {
        this.orderActionType = orderActionType;
    }
}

使用Gson 库

  1. 定义一个 Pojo

class Pojo {

    @Override
    public String toString() {
        return "Pojo [name=" + name + ", value=" + value + "]";
    }

    private String name;
    private List<Value> value;
}

class Value {

    private String name;
    private String value;

    @Override
    public String toString() {
        return "Value [name=" + name + ", value=" + value + "]";
    }

}
  1. 将字符串解析为 pojo 对象:

String json = "{\"name\": \"hierarchy\",\"value\": [  {    \"name\": \"solutionid\",    \"value\": \"String\"  },"
                + "           {    \"name\": \"groupcode\",    \"value\": \"String\"  },  {    \"name\": \"dealhashid\",    \"value\": \"String\""
                + "           },  {    \"name\": \"keyinfo_customername\",    \"value\": \"String\"  },  {    \"name\": \"keyinfo_prequalificationnumber\","
                + "         \"value\": \"String\"  },  {    \"name\": \"keyinfo_orderactiontype\",    \"value\": \"String\"  }]}";

Gson g = new Gson();
Pojo p = g.fromJson(json, Pojo.class);
System.out.println(p);

没有 Pojo 编辑:

String json = "{\"name\": \"hierarchy\",\"value\": [  {    \"name\": \"solutionid\",    \"value\": \"String\"  },"
                + "           {    \"name\": \"groupcode\",    \"value\": \"String\"  },  {    \"name\": \"dealhashid\",    \"value\": \"String\""
                + "           },  {    \"name\": \"keyinfo_customername\",    \"value\": \"String\"  },  {    \"name\": \"keyinfo_prequalificationnumber\","
                + "         \"value\": \"String\"  },  {    \"name\": \"keyinfo_orderactiontype\",    \"value\": \"String\"  }]}";

Gson g = new Gson();
JsonObject p = g.fromJson(json, JsonObject.class);
System.out.println(p.get("name"));
System.out.println(p.get("value"));

现在您可以使用名称和值...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM