java - 将 Json 作为字符串接收并转换为 Java 对象
问题描述
我对java很陌生,想问一些新手问题。我的任务是使用 API 通过函数 incomingIM() 接收 json 对象。一旦我将它作为字符串接收,则将该 json 对象传递给序列化函数,并使用 GSONE Java 库将其转换为 java 对象。
- 我的第一个问题是我可以将 Json 对象作为字符串传递吗?我可以以这种方式传递吗?
- 那是如何在java中完成的
// 接收字符串 str 中的 Json 对象并传递给函数 serialization()
public void incomingIM(IncomingImInterface incomingImInterface) {
String str=incomingImInterface.getMessage();
serialization(str);
}
//使用GSON java库进行json到java对象解析 //将值从Json对象传递给java对象
public MainActivity(String name,String age){
this.name=name;
this.age=age;
}
// 接受 json 对象作为字符串并使用 GSON 库将其转换为 java 对象
public static void serialization(String str){
String userJson= str;
Gson gson = new Gson();
MainActivity userSimple = gson.fromJson(userJson, MainActivity.class);
}
解决方案
您绝对可以将 JSON 作为字符串传递,这是正常的完成方式。只需在需要时使用 GSON 或 Jackson 解析字符串,反之亦然。您可以直接往返 POJO,也可以只使用地图。
如果您正确设置它们,许多 Web 框架(例如 Spring)会很乐意为您自动将 JSON 从字符串转换为 java-object (POJO)(它们倾向于为此利用 Jackson)。他们还会在返回响应时转换回来。我想说这是网络代码的首选方法。如果您不在网络代码中,尽管手动执行将是很正常的。
推荐阅读
- c# - 创建自定义语法错误而不是使用运行计时器错误/异常
- swift - 当我从 UTC 中获取价值时,我可以在日期选择器中选择时间,那么如何将 UTC 时间转换为 GMT+05:30 到日期?
- angular - 角度类型错误:类型“字符串”不可分配给类型“字符串 []”
- css - 使用 angularjs ng repeat 和 bootstrap 类在框中显示产品,但显示方式错误
- ios - Xcode:无法加载配置文件。配置文件缺少所需的 UUID 属性
- hive - 如何在 IBM Analytics Engine 上调试 hive?
- c# - 编写自己的自定义方法,不带参数
- sql - 从另一个 Excel 文件更新数据库表中缺失的数据
- javascript - 如何在键中获取childData
- linux - 从文件名中删除开头 4 个字母和结尾 4 个字母