我們如何轉換成JSON如下類型爲Java對象JSON來POJO convertions
{
"complaint_Map": {
"1000067730": "3011351597604397",
"1000067730-06": "10582576134561065"
}
}
如果任何人有任何想法,這個告訴我們如何做到這一點。
我們如何轉換成JSON如下類型爲Java對象JSON來POJO convertions
{
"complaint_Map": {
"1000067730": "3011351597604397",
"1000067730-06": "10582576134561065"
}
}
如果任何人有任何想法,這個告訴我們如何做到這一點。
與傑克遜
import com.fasterxml.jackson.databind.ObjectMapper;
嘗試
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{\"complaint_Map\":{\"1000067730\":\"3011351597604397\",\"1000067730-06\":\"10582576134561065\"}}";
Map<String,Object> pojo = mapper.readValue(jsonInString, Map.class);
System.out.println(((Map<String,Object>)pojo.get("complaint_Map")).get("1000067730")+"");
將打印
3011351597604397
在java中,你可以使用一個簡單的POJO從JSON轉換成/傑克遜庫。
維基百科:
傑克遜是一個Java的高性能JSON處理器。它的開發人員欣賞庫的快速,正確,輕量級和人體工程學屬性的組合。
這裏通過維基百科的例子:
public class ReadWriteJackson {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
String jsonInput =
"{\"id\":0,\"firstName\":\"Robin\",\"lastName\":\"Wilson\"}";
Person q = mapper.readValue(jsonInput, Person.class);
System.out.println("Read and parsed Person from JSON: " + q);
Person p = new Person("Roger", "Rabbit");
System.out.print("Person object " + p + " as JSON = ");
mapper.writeValue(System.out, p);
}
}
您可以ObjectMapper傑克遜做到這一點。
假設JSON是定義一個Java對象, 話,就可以通過
import org.codehaus.jackson.map.ObjectMapper;
YourObject mappingClassObject = new YourObject();
ObjectMapper mapper = new ObjectMapper();
try{
mappingClassObject = mapper.readValue(yourJSON, YourObject.class);
}catch(Exception e){
e.printStackTrace();
}
如果您在使用Jackson
庫想辦法解決做了,在這兒呢。
自定義類:
@JsonRootName("complaint_Map")
public class Complaint {
private String firstKey;
private String secondKey;
@JsonProperty("1000067730")
public String getFirstKey() {
return firstKey;
}
@JsonProperty("1000067730")
public void setFirstKey(String firstKey) {
this.firstKey = firstKey;
}
@JsonProperty("1000067730-06")
public String getSecondKey() {
return secondKey;
}
@JsonProperty("1000067730-06")
public void setSecondKey(String secondKey) {
this.secondKey = secondKey;
}
@Override
public String toString() {
return "Complaint{" +
"firstKey='" + firstKey + '\'' +
", secondKey='" + secondKey + '\'' +
'}';
}
}
和測試方法:
String jsonString = "{\"complaint_Map\":{\"1000067730\":\"3011351597604397\",\"1000067730-06\":\"10582576134561065\"}}";
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
try {
Complaint complaint = mapper.readValue(jsonString, Complaint.class);
System.out.println(complaint);
} catch (Exception e) {
e.printStackTrace();
}
我用下面的版本(在Maven pom
):
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.1.3</version>
</dependency>
使用傑克遜或GSON –
什麼你有沒有嘗試過?這個問題被「spring-boot」標記的原因是什麼? –
,因爲在我的spring-boot項目中,我有要求將用戶基礎數據從RIAK KV存儲桶轉移到另一個服務器的另一個存儲桶的策略數據,這就是爲什麼,但這裏不需要spring-boot標籤! –