簡體   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