JSON名称值对在Java中解析

时间:2016-05-09 21:12:37

标签: java json

我有以下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;
    }
}

1 个答案:

答案 0 :(得分:1)

使用Gson lib

  1. 定义Pojo
  2. 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对象:
    2. 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"));
      

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