java json实例化_java-通过JSON创建动态对象

博客探讨了如何在Android应用中处理不同类型的JSON对象,通过添加类型信息并利用Jackson框架来动态实例化Java类。文章提出了两种方法,一种是直接在JSON中添加类型字段,另一种是将对象作为成员添加到JSON对象中,并讨论了它们的适用性。
摘要由CSDN通过智能技术生成

我有一个Android应用程序,它接收JSON格式的字符串.

JSON结构包含一组不同类型的JSON对象.

我将为每种类型创建一个类,并希望借助JSON框架直接从JSON实例化对象.

为了简化起见,让我们考虑以下示例:

我们有两个Java类:

public class A

{

public String a1 = "";

public int a2 = 0;

}

public class B

{

public double b1 = 0;

public double b2 = 0;

public double b3 = 0;

}

也不是我们有一个JSON数组

[

{

"a1": "Teststring",

"a2": 12

},

{

"b1": 3,

"b2": 4,

"b3": 5

},

{

"a1": "Teststring2",

"a2": 24

}

]

我不知道JSON对象以哪个,多少个或以什么顺序出现.但是我能够修改它们的JSON表示形式.

我能想到的一种解决方案:

从我阅读有关框架的内容来看,与GSON相比,杰克逊可以做到这两者,读取特定值并生成Java实例.

所以我可以将类型信息添加到JSON对象中:

[

{

"type": "A",

"a1": "Teststring",

"a2": 12

},

{

"type": "B",

"b1": 3,

"b2": 4,

"b3": 5

},

{

"type": "A",

"a1": "Teststring2",

"a2": 24

}

]

比从类型读取值,然后从中生成正确的对象.

您如何看待我的方法?有没有针对我的问题的通用解决方案?

解决方法:

而不是将所有内容放入数组中,为什么不使用json对象,并使用通用名称(包括-类型和一些索引)将这些对象作为成员添加到该对象中.

{

"A0":

{ ... },

"B0":

{ ... },

"A1":

{ ... },

}

标签:jackson,dynamic,json,java,android

来源: https://codeday.me/bug/20191118/2029226.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值