我创建了一个简单的POJO:
public class LoginPojo {
private String login_request = null;
private String email = null;
private String password = null;
// getters, setters
}
Run Code Online (Sandbox Code Playgroud)
经过一番搜索,我发现了这个: JSONObject jsonObj = new JSONObject( loginPojo );
但是有了这个,我得到了错误:
The constructor JSONObject(LoginPojo) is undefined
Run Code Online (Sandbox Code Playgroud)
我找到了另一个解决方
JSONObject loginJson = new JSONObject();
loginJson.append(loginPojo);
Run Code Online (Sandbox Code Playgroud)
但这种方法不存在.
那么如何将我的POJO转换为JSON?
cнŝ*_*ŝdk 33
只需使用java Gson API:
Gson gson = new GsonBuilder().create();
String json = gson.toJson(obj);// obj is your object
Run Code Online (Sandbox Code Playgroud)
然后你可以JSONObject从这个json 创建一个String,像这样:
JSONObject jsonObj = new JSONObject(json);
Run Code Online (Sandbox Code Playgroud)
看看GSON用户指南,这SIMPLE GSON实例的详细信息.
Jackson提供 JSON 解析器/JSON 生成器作为基础构建块;并添加了一个强大的数据绑定器 (JSON<->POJO) 和树模型作为可选的附加块。这意味着您可以将 JSON 作为令牌流(流 API)、普通旧 Java 对象(POJO、数据绑定)或树(树模型)读取和写入。更多参考
你必须添加jackson-core-asl-x.x.x.jar,jackson-mapper-asl-x.x.x.jar库来配置Jackson你的项目。
修改后的代码:
LoginPojo loginPojo = new LoginPojo();
ObjectMapper mapper = new ObjectMapper();
try {
mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY);
// Setting values to POJO
loginPojo.setEmail("a@a.com");
loginPojo.setLogin_request("abc");
loginPojo.setPassword("abc");
// Convert user object to json string
String jsonString = mapper.writeValueAsString(loginPojo);
// Display to console
System.out.println(jsonString);
} catch (JsonGenerationException e){
e.printStackTrace();
} catch (JsonMappingException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
Output :
{"login_request":"abc","email":"a@a.com","password":"abc"}
Run Code Online (Sandbox Code Playgroud)
可以从 POJO 获取(gson)JsonObject:
JsonElement element = gson.toJsonTree(userNested);
JsonObject object = element.getAsJsonObject();
Run Code Online (Sandbox Code Playgroud)
之后,您可以object.entrySet()查看并查看所有树。
这是 GSON 中唯一一种完全免费的方式来动态设置您想要查看的字段。
| 归档时间: |
|
| 查看次数: |
39759 次 |
| 最近记录: |