我想知道是否有任何Java API可用於將POJO對象轉換爲JSON對象,反之亦然。如何將POJO轉換爲JSON,反之亦然?
34
A
回答
35
是的,有json.org。看看http://www.json.org/java/index.html
[編輯] 假設你有一個簡單的Java類是這樣的:
public class Person {
private String name;
private Integer age;
public String getName() { return this.name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return this.age; }
public void setAge(Integer age) { this.age = age; }
}
所以,把它改造成JSON對象,這是非常簡單的。像這樣:
import org.json.JSONObject;
public class JsonTest {
public static void main(String[] args) {
Person person = new Person();
person.setName("Person Name");
person.setAge(666);
JSONObject jsonObj = new JSONObject(person);
System.out.println(jsonObj);
}
}
希望它有幫助。
[編輯] 在這裏有另一個例子,在這種情況下,使用傑克遜:https://brunozambiazi.wordpress.com/2015/08/15/working-with-json-in-java/
14
我們還可以使用如下的依賴和插件在你的POM文件 - 我使用的Maven的。通過使用這些,您可以根據您的JSON模式生成POJO,然後使用下面給出的代碼通過指定爲參數的src對象將請求JSON對象填充到gson.toJson(Object src),反之亦然。看看下面的代碼:
Gson gson = new GsonBuilder().create();
String payloadStr = gson.toJson(data.getMerchant().getStakeholder_list());
Gson gson2 = new Gson();
Error expectederr = gson2.fromJson(payloadStr, Error.class);
而且Maven的設置:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>1.7.1</version>
</dependency>
<plugin>
<groupId>com.googlecode.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>0.3.7</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
<targetPackage>com.example.types</targetPackage>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
5
如果你是知道的傑克遜2,有在關於如何將Java對象轉換成JSON一個偉大的教程反之亦然。以下代碼片段已從該教程中獲取。
轉換Java對象JSON,writeValue(...)
:
ObjectMapper mapper = new ObjectMapper();
Staff obj = new Staff();
//Object to JSON in file
mapper.writeValue(new File("c:\\file.json"), obj);
//Object to JSON in String
String jsonInString = mapper.writeValueAsString(obj);
轉換JSON到Java對象,readValue(...)
:
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{'name' : 'mkyong'}";
//JSON from file to Object
Staff obj = mapper.readValue(new File("c:\\file.json"), Staff.class);
//JSON from URL to Object
Staff obj = mapper.readValue(new URL("http://mkyong.com/api/staff.json"), Staff.class);
//JSON from String to Object
Staff obj = mapper.readValue(jsonInString, Staff.class);
傑克遜2相關性:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
有關完整教程,請轉到上面給出的鏈接。
-2
使用GSON將POJO轉換爲JSONObject。 Refer here.
對於將JSONObject轉換爲POJO,只需調用POJO中的setter方法並直接從JSONObject中分配值即可。
相關問題
- 1. 如何將POJO轉換爲HEX,反之亦然?
- 2. 如何在Java中將POJO轉換爲Map,反之亦然?
- 3. 將ansi轉換爲utf8,反之亦然
- 4. 將float2轉換爲double2,反之亦然
- 5. 將lonlat轉換爲xyz,反之亦然
- 6. 將NSString轉換爲NSData,反之亦然
- 7. 將HTML轉換爲Xliff,反之亦然
- 8. 將JavaUtilDate轉換爲NSDate,反之亦然?
- 9. 將RSAPrivateKey轉換爲PrivateKey,反之亦然
- 10. 爲什麼要將JSON文件轉換爲XML,反之亦然?
- 11. 將對象(包含lambda)轉換爲JSON,反之亦然
- 12. 將Java對象轉換爲Json,反之亦然?
- 13. 我怎樣才能將Xml轉換爲Json,反之亦然c#
- 14. 將字符串轉換爲golang中的json,反之亦然?
- 15. 將xml轉換爲JSON或反之亦然的庫
- 16. 將列轉換成行,反之亦然
- 17. DTO轉換爲實體,反之亦然
- 18. 如何將System :: WideString轉換爲char *,反之亦然?
- 19. 如何將字符串轉換爲IP地址,反之亦然
- 20. 如何將CLOB轉換爲圖像或反之亦然?
- 21. 如何將Bayer轉換爲使用OpenCV的RGB,反之亦然
- 22. 如何將字符串轉換爲Java文件,反之亦然?
- 23. 如何將Unix時間戳轉換爲DateTime,反之亦然?
- 24. 如何將矩陣轉換爲3D數組或反之亦然?
- 25. 如何將NSDictionary轉換爲NSData,反之亦然?
- 26. 如何將pandas DataFrame轉換爲字節,反之亦然?
- 27. 如何在Qt中將QVariant轉換爲QString,反之亦然?
- 28. 如何將XML從XML轉換爲Java,反之亦然?
- 29. 如何將int []轉換爲OpenCV Mat? (反之亦然)
- 30. 如何將Yaml轉換爲csv,反之亦然
Thnx但是...我想如果我有一個Pojo,我可以通過pojo對象,這樣的圖書館構造JSON對象...可以做到這一點?你能舉個例子嗎? thnx很多 – Mariah 2012-03-06 23:47:18
@Bruno如何使用此JSONObject獲取List或Set的值。 – 2013-03-19 10:20:37
我喜歡這種方法 - 不幸的是它不適合我。我得到了錯誤信息:「構造函數JSONObject(Person)未定義」..任何想法爲什麼?我在一些Android代碼中調用它..它是普通的Java。謝謝 – gnB 2015-04-13 23:57:07